全博客园最新最牛的docker之dockerfle实战
1.前言
在前面的技术文章中介绍了Docker中镜像的管理和Docker容器的管理,本系列文章主要详细的介绍Dockerfile的案例应用和实战。 那么什么是Dockerfile?使用dockerfile主要是用于构建docker镜像文件信息,相当于一个脚本,通过dockerfile自己的指令,来构建软件依赖,文件依赖,存储等等情况。
2.Dockerfile的作用在docker中创建镜像可以分为两个方法,这两个方法具体可以总结为如下:
-
手动修改容器内容,然后docker commit提交容器为新的镜像文件
-
通过在dockerfile中定义一系列的命令和参数构成的脚本,然后这些命令应用于基础镜像,依次添加层,最终生成一个新的镜像,这样就极大的简化了部署的工作。
dockerfile的主要组成部分可以汇总为:
-
基础镜像信息
-
制作镜像操作指令 RUM
-
容器启动时执行指令CMD["/bin/bash"]
dockerfile的指令主要可以汇总为如下,使用dockerfile的前提是学习会这些指令的基本使用,这些基本指令具体汇总如下:
-
FROM #指令基础镜像
-
MAINTAINER #指定维护者信息,也可以没有
-
RUN #具体执行的操作,在命令前面加上RUN即可
-
ADD #COPY文件,会自动进行解压
-
WORKDIR #设置当前工作目录
-
VOLUME #设置卷,挂载主机目录
-
EXPOSE #指定对外的端口
-
CMD #指定容器启动后需要干的事情
-
COPY #复制文件
-
ENV #环境变量
-
ENIRYPOINT #容器启动后执行的命令
容器能够运行的前提是必须在容器内,有一个进程在前台运行,该容器内,比如是MySQL,那么也就是说有MySQL正在前台运行。下面演示一个Linux中调用变量的案例应用,具体Dockerfile文件信息如下所示:
FROM centos:7.8.2003
MAINTAINER 无涯
ENV name Docker
ENTRYPOINT echo "Hello $name"
下面详细的演示构建Dockerfile的过程信息,构建的命令以及构建的过程具体如下:
#构建Dockerfile的镜像信息
docker build .
#执行如上构建的指令后,输出如下的信息
Sending build context to Docker daemon 15.87kB
Step 1/4 : FROM centos:7.8.2003
7.8.2003: Pulling from library/centos
9b4ebb48de8d: Pull complete
Digest: sha256:8540a199ad51c6b7b51492fa9fee27549fd11b3bb913e888ab2ccf77cbb72cc1
Status: Downloaded newer image for centos:7.8.2003
---> afb6fca791e0
Step 2/4 : MAINTAINER 无涯
---> Running in 2bfd2fad4751
Removing intermediate container 2bfd2fad4751
---> 71dad12c4110
Step 3/4 : ENV name Docker
---> Running in f70dc098790d
Removing intermediate container f70dc098790d
---> 3c5b5a752709
Step 4/4 : ENTRYPOINT echo "Hello $name"
---> Running in cf39ef605a9a
Removing intermediate container cf39ef605a9a
---> 2e70823e2d4a
Successfully built 2e70823e2d4a
构建镜像成功后,可以查看该镜像信息以及运行该容器,执行的结果就会显示“Hello Docker”,具体见如下的操作过程:
#查看镜像的信息
[root@wuyaShare learnDocker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 2e70823e2d4a 4 minutes ago 203MB
centos 7.8.2003 afb6fca791e0 17 months ago 203MB
#修改镜像的名称
[root@wuyaShare learnDocker]# docker tag 2e70823e2d4a centos_hello
#查看修改后的镜像名称
[root@wuyaShare learnDocker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos_hello latest 2e70823e2d4a 5 minutes ago 203MB
centos 7.8.2003 afb6fca791e0 17 months ago 203MB
#运行镜像以及显示镜像运行后的信息
[root@wuyaShare learnDocker]# docker run -it --rm centos_hello bash
Hello Docker
如上可以看到,通过一个实际的案例演示了Dockerfile的实战应用,继续会陆续的完善通过Dockerfile来部署Python&Java的应用程序。感谢您的阅读,后续会持续的更新。
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
可以自助拿走,群号913569736(备注“博客园000”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

浙公网安备 33010602011771号