Docker-6-构建自己的镜像

上文中,介绍了对于镜像的一些常用的操作,还有镜像和容器的关系等,本文来看一下如何构建一个自己的镜像

创建容器

这里我们创建两个nginx的容器,首先就需要有nginx的镜像,如果没有的话可以用以下命令下载一个下来:

docker pull nginx
image

首先启动一个nginx容器,然后复制一个本地的html进去做首页,如下:

image

可以看到这里容nginx的首页已经换成是我们自定义的了

然后再启动一个nginx,这次不替换首页, 用的镜像还是和上面的一样,命令如下:

image

这里可以发现我们第二次创建的这个容器的首页还是默认页面没有发生改变的,所以容器的修改并不能影响镜像

创建本地镜像

具体操作如下:

image

这里主要命令是这个:

docker commit -m "update index.html" --author='zz' 415fe3874fb7 zhou/nginx:v1
  • -m: 提交的备注
  • --author: 表示镜像的作者
  • 415fe3874fb7: 创建镜像所依据的容器id
  • zhou/nginx: 表示仓库名,zhou是名称空间,nginx是镜像名
  • v1: 表示仓库的tag

如图中,镜像创建完成之后,就可以通过docker images查看到刚刚创建的镜像了.

测试

我们用刚刚创建的镜像建一个容器来看一下

image

如图,可以看到,这里的首页已经是改变过的了

在实际的使用过程中,并不会通过docker commit的方式创建镜像

使用 docker commit 意味着所有对镜像的操作都是黑箱操作,生成的镜像也被称为黑箱镜像,换句话说,就是除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。而且,即使是这个制作镜像的人,过一段时间后也无法记清具体在操作的。虽然 docker diff 或许可以告诉得到一些线索,但是远远不到可以确保生成一致镜像的地步。这种黑箱镜像的维护工作是非常痛苦的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文在此 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜...
    若与阅读 1,888评论 1 5
  • 在前面两节我们学习了如何安装以及简单的运行管理docker容器,在本节我们将会更多的探讨关于docker镜像的知识...
    井底蛙蛙呱呱呱阅读 4,204评论 0 5
  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,471评论 1 39
  • 每一条路上都有我们烦躁的士兵 他们等着交火,架设地雷和望远镜 他们中的莲子、剪刀、豌豆 全都交给了农民 有人骑着马...
    隔着玻璃亲嘴阅读 140评论 0 2
  • 暑假第一次去了云南普者黑,山水流转间,灵魂仿佛入了画中。唤它青丘,是因为这里曾是电视剧《三生三世十里桃花》的拍摄...
    思晚阅读 493评论 3 2