在前面的技术文章中介绍了Docker中镜像的管理和Docker容器的管理,本系列文章主要详细的介绍Dockerfile的案例应用和实战。 那么什么是Dockerfile?使用dockerfile主要是用于构建docker镜像文件信息,相当于一个脚本,通过dockerfile自己的指令,来构建软件依赖,文件依赖,存储等等情况。
Dockerfile的作用
在docker中创建镜像可以分为两个方法,这两个方法具体可以总结为如下:
Dockerfile组成部分
dockerfile的主要组成部分可以汇总为:
Dockerfile基本指令
dockerfile的指令主要可以汇总为如下,使用dockerfile的前提是学习会这些指令的基本使用,这些基本指令具体汇总如下:
Dockerfile实战
容器能够运行的前提是必须在容器内,有一个进程在前台运行,该容器内,比如是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的应用程序。感谢您的阅读,后续会持续的更新。