Docker使用dockerfile指令构建docker镜像
时间:2023-05-28 07:07:01
初识Dockerfile
Dockerfile用于构造docker构建镜像文件!命令脚本!
镜像可以通过这个脚本生成。镜像是一层一层的,脚本是一行的命令,每行的命令都是一层一层的
dockerfile这是为了开发。如果我们将来想发布项目并制作镜像,我们需要编写它dockerfile这个文件很简单。
Dockerfile镜像已成为企业交付的标准,必须掌握!
写自己的docker 镜像
检查镜像是如何生成的
docker history 镜像ID或镜像名
构建步骤:
编写一个dockerfile文件
docker build 构建成镜像
docker run 运行镜像
docker push 发布镜像
编写Dockerfile文件
#创建一个dockerfile文件、名称可随机,建议Dockerfile
#文件中的内容:指令(大写) 参数
#实例测试:
#创建存储目录dockerfile文件的目录:
[root@localhost ~]# mkdir docker_test
#创建进入目录dockerfile文件:
[root@localhost ~]# mkdir docker_test
[root@localhost ~]# cd docker_test/
[root@localhost docker_test]# touch dockerfile
#编写dockerfile在文件中写入文件dockerfile指令:
[root@localhost docker_test]# vim dockerfile
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
将Dockerfile文件变成镜像
#使用docker build . 命令将dockerfile文件变成镜像
[root@localhost docker_test]# docker build -f /root/docker_test/dockerfile -t hzw/centos .
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos
---> 5d0da3dc9764
Step 2/4 : VOLUME ["volume01","volume02"]
---> Running in d4b23ae86ace
Removing intermediate container d4b23ae86ace
---> 8f39792fbef7
Step 3/4 : CMD echo "----end----"
---> Running in 1bb4751f04ef
Removing intermediate container 1bb4751f04ef
---> 2e2bb5e2a502
Step 4/4 : CMD /bin/bash
---> Running in 82a0b5905405
Removing intermediate container 82a0b5905405
---> 39a1fd86fd73
Successfully built 39a1fd86fd73
Successfully tagged hzw/centos:latest
#可以找到docker一层一层地创建镜像。每一个命令都是镜像的一层。
检查自己构建的docker镜像
[root@localhost docker_test]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hzw/centos latest 39a1fd86fd73 2 minutes ago 231MB
用自己构建的docker镜像生成容器
[root@localhost docker_test]# docker run -it hzw/centos /bin/bash
[root@f62a714bb306 /]# ls
bin dev etc home lib lib64 lost found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
#可以看出,我们建造的镜像也可以正常使用,我们在dockerfile这个容器里还有写指令挂载的目录。
DockerFile
dockerfile时用来构建docker镜像文件!命令参数脚本!
构建步骤:1、编写一个dockerfile文件
2、docker build . 构建称为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库)
Dockerfile指令
FROM #指定基本镜像,从这里构建一切
MAINTAINER #谁写镜像,姓名? 邮箱
RUN #在构建镜像时,需要操作命令
ADD #步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR #镜像工作目录
VOLUME #挂载目录
EXPOST #暴露端口配置
CMD #指定启动容器时运行的命令,Dockerfile里有多个CMD只有最后一个指令。CMD指令生效,可替代
ENTRYPOINT #可以增加指定该容器董事会运行的命令
ONBUILD #当构建被继承人时dockerfile,这个时候个时候运行ONBUILD指令。触发指令
COPY #类似ADD,将我们的文件复制到镜像中
ENV #施工时设置环境变量!
docker build . 命令
构建好dockerfile我们使用文件后docker build命令将文件构建成镜像。
#使用命令的方法:
docker build -f dockerfile文件路径 -t 取个镜像名 .
#参数详解:
-f dockerfile文件路径可以写绝对路径或相对路径
-t 名称格式: 名字:标签
. 构建上下文路径 必须写