镜像(Images)

镜像是Docker的三大核心之一,类似于虚拟机,作用和虚拟机是一样的,唯独是组成部分会有些区别。简单的说如果我们想启动一个容器就必须要有镜像。docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,docker会尝试先从默认镜像仓库下载(Docker Hub),用户也可以通过配置,使用自定义的镜像仓库。

镜像文件存储结构?

docker相关文件存放在:/var/lib/docker目录下

/var/lib/docker
├── builder
├── buildkit
├── containerd
├── containers
├── image
├── network
├── overlay2
├── plugins
├── runtimes
├── swarm
├── tmp
├── trust
└── volumes

国内doceker仓库地址

  1. vim /etc/docker/daemon.json
  2.  
  3. {
  4. "registry-mirrors":[ "https://registry.docker-cn.com" ]
  5. }
  1. #获取镜像
  2. docker pull 【镜像名称】
  3.  
  4. [root@controller ~]# docker pull ubuntu
  5. Using default tag: latest
  6. Trying to pull repository docker.io/library/ubuntu ...
  7. latest: Pulling from docker.io/library/ubuntu
  8. 660c48dd555d: Pull complete
  9. 4c7380416e78: Pull complete
  10. 421e436b5f80: Pull complete
  11. e4ce6c3651b3: Pull complete
  12. be588e74bd34: Pull complete
  13. Digest: sha256:7c67a2206d3c04703e5c23518707bdd4916c057562dd51c74b99b2ba26af0f79
  14.  
  15. #查看镜像
  16. [root@controller ~]# docker images
  17. REPOSITORY TAG IMAGE ID CREATED SIZE
  18. docker.io/ubuntu latest 20c44cd7596f 3 days ago 122.8 MB
  19. 字段解释:
  20. REPOSITORY 来自哪个仓库
  21. TAG 镜像标签信息 (别名的作用)
  22. IMAGE ID 镜像ID号(唯一)
  23. CREATED 创建时间
  24. SIZE 大小
  25. #获取一个ubuntu 14.04版本
  26. [root@controller ~]# docker pull ubuntu: 14.04
  27. [root@controller ~]# docker images
  28. REPOSITORY TAG IMAGE ID CREATED SIZE
  29. docker.io/ubuntu latest 20c44cd7596f 3 days ago 122.8 MB
  30. docker.io/ubuntu 14.04 d6ed29ffda6b 3 days ago 221 MB
  31. 我们可以看到这两个images来自同一个仓库,TAG标签不一样标记不同的镜像,使用docker tag命令可以为本地镜像添加新的标签。
  32.  
  33. #查看镜像详细信息
  34. docker inspect IMAGE ID
  35. [root@controller ~]# docker inspect 20c44cd7596f
  36. [
  37. {
  38. "Id": "sha256:20c44cd7596ff4807aef84273c99588d22749e2a7e15a7545ac96347baa65eda",
  39. "RepoTags": [
  40. "docker.io/ubuntu:latest"
  41. ],
  42. ...
  43. -f参数指定查询:
  44. [root@controller ~]# docker inspect -f {{".RepoTags"}} 20c44cd7596f
  45. [docker.io/ubuntu:latest]
  46.  
  47. #搜索镜像
  48. [root@controller ~]# docker search nginx
  49. INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  50. docker.io docker.io/nginx Official build of Nginx. 7317 [OK]
  51. docker.io docker.io/jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1174 [OK]
  52. docker.io docker.io/richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 475 [OK]
  53.  
  54. #删除镜像
  55. docker rmi 【标签或ID
  56. [root@controller ~]# docker rmi ubuntu:latest
  57. Untagged: ubuntu:latest
  58.  
  59. #运行一个容器
  60. [root@controller ~]# docker run ubuntu echo 'hello I am ubuntu
  61.  
  62. #查看存在的所有容器
  63. [root@controller ~]# docker ps -a
  64. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  65. 2bb8a93f5d34 ubuntu "echo 'hello I am ubu" About a minute ago Exited (0) About a minute ago gigantic_heyrovsky
  66. #这时删除镜像出现错误
  67. [root@controller ~]# docker rmi ubuntu
  68. Error response from daemon: conflict: unable to remove repository reference "ubuntu" (must force) - container 2bb8a93f5d34 is using its referenced image 20c44cd7596f
  69. #强制删除加-f
  70. [root@controller ~]# docker rmi -f ubuntu
  71.  
  72. #创建镜像
  73. 创建镜像有三种方法:
  74. 1.已有镜像创建
  75. 2.本地模板导入
  76. 3.Dockerfile创建
  77.  
  78. 1.已有镜像创建
  79. Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  80. Create a new image from a container's changes
  81. Options:
  82. -a, --author string
  83. -c, --change value
  84. --help
  85. -m, --message string
  86. -p, --pause
  87.  
  88. #首先启动一个镜像
  89. [root@controller ~]# docker run -ti ubuntu:14.04 /bin/bash
  90. root@c5439518dcbe:/# touch test
  91. root@c5439518dcbe:/# exit
  92. 记住容器的ID:c5439518dcbe
  93.  
  94. #创建一个新的镜像
  95. [root@controller ~]# docker commit -m "added a new file" -a "Docker newbee" c5439518dcbe test
  96. sha256:4efd37e84d4998fbc7cff55d21fa360fdd60f1d7319050e70512754bf2851b7f
  97. [root@controller ~]# docker images
  98. REPOSITORY TAG IMAGE ID CREATED SIZE
  99. test latest 4efd37e84d49 18 seconds ago 221 MB
  100.  
  101. #模板下载:https://download.openvz.org/template/precreated/
  102. [root@controller ~]# cat ubuntu-12.04-x86-minimal.tar.gz |docker import - ubuntu:12.04
  103. sha256:8d6161cea96c6b2f2ef39be5b2370e38cb003e8f3b5c2d3f960e0e7d37733d41
  104.  
  105. #导出镜像到本地
  106. [root@controller ~]# docker save -o ubuntu_12.04.tar ubuntu:12.04
  107. #从本地导入镜像
  108. [root@controller ~]# docker load --input ubuntu_12.04.tar

  109. [root@controller ~]# docker load < ubuntu_12.04.tar
  110.  
  111. #上传镜像(默认上传到Docker hub)
  112. [root@controller ~]# docker push --help
  113. Usage: docker push [OPTIONS] NAME[:TAG]
  114. [root@controller ~]# docker tag test:latest user/test:latest
  115. [root@controller ~]# docker push user/test:latest

小结:

镜像是使用Docker的前提,因此可以结合公司的生产环境制作好镜像,方便使用。

Docker之镜像的更多相关文章

  1. Docker:镜像操作和容器操作

    镜像操作 列出镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest 0a6b ...

  2. Docker的镜像

    镜像是容器的运行基础,容器是镜像运行后台的形态 镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上 镜像的系统结构 ...

  3. Docker - Docker国内镜像的配置及使用

    Docker国内镜像 DaoCloud - Docker加速器 阿里云 - 开发者平台 微镜像 - 希云cSphere 镜像广场 - 时速云 灵雀云 网易蜂巢 阿里云的Docker加速器 阿里云 - ...

  4. Docker image 镜像介绍

    操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...

  5. Docker - 定制镜像

    Dockerfile Docker Hub拥有大量高质的官方镜像:可直接使用的服务类镜像.语言应用镜像.基础操作系统镜像等,满足绝大部分需求. 此外,可以通过定制镜像的方式来满足实际使用中的特定需求. ...

  6. 从零开始构建docker基础镜像

    段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...

  7. Docker 基础 : 镜像

    目录 获取镜像 查看镜像信息 搜索镜像 删除镜像 创建镜像 导出和导入镜像 上传镜像 总结 镜像是 Docker 的三大核心概念之一.Docker 运行容器前需要本地存在对应的镜像,如果本地没有对应的 ...

  8. 微服务架构 - 搭建docker本地镜像仓库并提供权限校验及UI界面

    搭建docker本地镜像仓库并提供权限校验及UI界面 docker本地镜像仓库的作用跟maven私服差不多,特别是公司级或者是小组级开发好的docker仓库可以上传到本地镜像仓库中,需要用时,直接从本 ...

  9. 使用Nexus3构建Docker私有镜像仓库

    一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并 ...

  10. Docker JDK镜像

    Docker jdk镜像 说明 使用alpine-glibc作为基础镜像 JAVA JDK/JRE以1.8为基准 下载文件 1.下载JDK/JRE压缩包. jre-8u201-linux-x64.ta ...

随机推荐

  1. dump_stack 分析使用

    dump_stack是用来回溯内核运行的信息的,打印内核信息堆栈段: dump_stack原型: void dump_stack(void); 1.使用这个功能时需要将内核配置勾选上: make me ...

  2. JSP最常用的五种内置对象(out,request,response,session,application)

    为了简化开发过程,JSP提供了一些内置对象,它们由容器实现和管理.开发者在JSP页面中无需声明,无需实例化就可使用.主要有out,request,response,session,applicatio ...

  3. React-Native 学习笔记-Android开发平台-开发环境搭建

    详细步骤请查看官网对应文档,BUT,有些注意事项请注意! 1,优先安装Node.js,因为后面可以使用npm安装软件, 2,注意不要使用CNPM!!!!!!!!! 3,Android Studio 请 ...

  4. 在Java Web项目中添加定时任务

    在Java Web程序中加入定时任务,这里介绍两种方式:1.使用监听器注入:2.使用Spring注解@Scheduled注入. 推荐使用第二种形式. 一.使用监听器注入 ①:创建监听器类: impor ...

  5. 大数据学习系列之九---- Hive整合Spark和HBase以及相关测试

    前言 在之前的大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 中介绍了集群的环境搭建,但是在使用hive进行数据查询的时候会非常的慢,因为h ...

  6. cs231n spring 2017 Python/Numpy基础 (1)

    本文使根据CS231n的讲义整理而成(http://cs231n.github.io/python-numpy-tutorial/),以下内容基于Python3. 1. 基本数据类型:可以用 prin ...

  7. 并查集-HDU1232-畅通工程

    转的其他人的.不知道谁的. 来看一个实例,杭电1232畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的.最后要解决的是整幅图的连通性问题.比如随意 ...

  8. ubantu下su命令Authentication failure失败的解决方式

    Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许 su 到 root . 可以使用: sudo passwd 来重新设置root密码,后即可登陆root. ortonwu@ubu ...

  9. 带您了解mysql CONCAT()函数

    CONCAT()函数是mysql中非常重要的函数,可以将多个字符串连接成一个字符串,下文对该函数作了详细的阐述,希望对您有所帮助. mysql CONCAT()函数用于将多个字符串连接成一个字符串,是 ...

  10. dedecms 封面模板和列表模板有什么不同

    封面模板,相当于你一个大栏目的封面.举例:你有一个栏目叫做"建站"而下面有很多子栏目,例如代码教程.模板下载.seo经验等,那么封面就相当于这个大栏目的首页,然后您可以在这个页面展 ...