Docker构建自定义镜像指南

一   了解Docker 镜像

1.1  Docker 镜像是什么

Docker 镜像不仅提供容器运行时所需文件,还包含了一些配置参数。镜像内容在构建之后也不会被改变,只有有了镜像才能启动容器

1.1  自定义镜像有哪些好处

Dockerfile 可以快速帮助我们构建自己的定制镜像

1.3  如何构建自己的Centos

第一步

通过编写 Dockerfile 文件来制作Centos 镜像,添加 vim、net-tools文件

第二步

新建一个dockerfile文件,在这个文件下新建mydockerfile-centos

dockerfile

cd /home
mkdir dockerfile

mydockerfile-centos

FROM centos:centos7
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "--- end ---"
CMD /bin/bash

第三步

查看编写的文件,编译刚刚写好的centos7

1.png

docker build -f mydockerfile-centos -t mycentos:0.1 .

1.png

第四步

等待编译完成,完成后运行镜像

docker run -it mycentos:0.1

vim 文件

vim test
pwd

查看ifconfig

1.png

查看历史操作

docker history 2c2feb50d12c

1.png

二  RUN、CMD和ENTRYPOINT

2.1  RUN命令与CMD命令的区别

·  RUN命令

RUN命令在Image 文件的构建阶段执行,执行结果会打包进入image文件,

·  CMD命令

CMD命令则是在容器启动后执行

一个Dockerfile可以包含多个RUN命令,但只能由一个CMD命令

2.2  CMD和ENTRYPOINT命令的区别

·  CMD

运行的命令只有最后一个会生效

· ENRTYPOINT

运行的命令可以追加CMD命令

CMD命令

FROM centos:centos7
CMD ["ls", "-a"]

1.png

编译并执行文件

docker build -f dockerfile-cmd-test -t cmdtest .
docker run f74776bf8b3c

2.png

追加命令查看全部文件目录

docker run f74776bf8b3c -l

3.png

再次执行查看全部文件目录命令

docker run f74776bf8b3c ls -al

4.png

ENTRYPOINT命令

dockerfile 目录下新建文件测试ENTRYPOINT,写入已下内容

cd /home/dockerfile
vim dockerfile-entrypoint
FROM centos:centos7
ENTRYPOINT ["ls", "-a"]

1.png

编译文件并执行容器

docker build -f dockerfile-entrypoint
docker run 29891c9ff3c9

2.png

追加命令

docker run 29891c9ff3c9 -l

3.png

原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4155.html

发表评论

登录后才能评论