首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker镜像

Docker镜像

作者头像
用户1154259
发布2018-01-17 15:46:51
发布2018-01-17 15:46:51
2.7K0
举报

docker镜像123?

额,由于没有实验环境,没有亲手实践,因此理解可能有不对的地方。 反正也是学习笔记,以后再修改吧...

docker的镜像跟virtualbox的镜像不一样。在虚拟机中,镜像是一个系统的完整体,包括了系统、用户在上面做的操作等等。而在docker中,镜像是一组文件的叠加。

解释下,玩过PS的应该都知道图层的概念。一个图片由不同的图层叠加混合,最终形成一张完美的照片。其中底层可能原始图片,然后盖上一层黄色,再覆盖掉不想要的部分,或者添加点点缀,通过这种图层的方式,可以方便的合并出想要的图片。在docker中,先通过启动文件启动一个基础的文件,然后在它上面加载文件系统,同时加载其他的文件。

举个例子,我想要搭建一个apache服务器的镜像,可能会按照下面的步骤:

  • 加载启动文件
  • 加载文件系统,如ubuntu或者centos或者fedora
  • 加载emacs
  • 加载apache

就像下面的图展示的一样:

加载完这些镜像后,会创建一个读写层。之前加载的镜像都是只读的,所有的修改操作都会放在这个读写层中。如果修改的是下面只读层的内容,则会拷贝到读写层再修改,这样就保证了层的读写分离

docker镜像相关的命令

查看docker镜像

代码语言:javascript
复制
sudo docker images 

从镜像网站上拉取镜像:

代码语言:javascript
复制
sudo docker pull fedora:20

查找镜像:

代码语言:javascript
复制
sudo docker search puppet

推送镜像:

代码语言:javascript
复制
sudo docker push jamtur01/static_web

删除镜像:

代码语言:javascript
复制
sudo docker rmi jamtur01/static_web

通过dockerfile创建镜像:

代码语言:javascript
复制
touch Dockerfile
sudo docker build =t="xxx/xxx:xxx"

查询docker历史:

代码语言:javascript
复制
sudo docker history 2dfshfjksd

dockerfile中的命令

代码语言:javascript
复制
1 CMD:启动时运行的命令
2 ENTRYPOINT:不会被run的指令覆盖。
3 WORKERID:创建新的镜像,设置工作目录
4 ENV:设置环境变量
5 USER:指定运行的用户
6 VOLUME:向镜像添加卷
7 ADD:把文件夹中的内容复制到镜像中
8 COPY:与ADD类似,但是不会解压或者提取
9 ONBUILD:添加触发器
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-02-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • docker镜像123?
  • docker镜像相关的命令
  • dockerfile中的命令
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档