视频内容seo,福州seo关键词排名,一流的南昌网站建设,北京网站建设课程培训班1.DockerFile介绍 dockerfile 是用来构建docker镜像的文件#xff01;命令参数脚本#xff01; 构建步骤#xff1a; 编写一个dockerfile文件docker build构建成为一个镜像docker run 运行镜像docker push发布镜像#xff08;DockerHub、阿里云镜像仓库#xff09; 2.Dock…1.DockerFile介绍 dockerfile 是用来构建docker镜像的文件命令参数脚本 构建步骤 编写一个dockerfile文件docker build构建成为一个镜像docker run 运行镜像docker push发布镜像DockerHub、阿里云镜像仓库 2.DockerFile构建过程
2.1 DockerFile基础 每个保留关键字指令都必须是大写字母 执行从上到下顺序执行 #表示注释 每一个指令都会创建一个新的镜像层并提交 dockerfile 是面向开发的我们以后要发布姓项目做镜像就需要编写dockerfile文件
2.2 步骤
DockerFile: 构建文件定义了一切的步骤源代码DockerImages: 通过DockerFile 构建生成的镜像最终发布和运行的产品Docker容器容器就是镜像运行起来提供服务器
3.DockerFile的指令 FROM 基础镜像 一切从这里开始构建 MAINTAINER 镜像是谁写的姓名邮箱 RUN 镜像构建的时侯需要运行的命令 ADD 步骤比如mysql的镜像这个mysql压缩包添加内容 WORKDIR 镜像的工作目录 VOLUME 挂载的目录 EXPOSE 保留端口配罝 CMD 指定这个容器启动的时候要运行的命令,只有最后一个会生效可被替代 ENTRYPOINT 指定这个容器启动的时候要运行的命令可以追加命令 ONBUILD 当构建一个被跳承 DockerFile 这个时候就会运行 ONBUILD 的指令。触发指令。 COPY 类似ADD将我们文件拷贝到镜像中 ENV 构建的时候设買环境变量 例如构建一个自己的centos
FROM centos:7
MAINTAINER tongweiwei2290581805qq.comENV MYPATH /user/local
WORKDIR $MYPATHRUN yum -y install vim
RUN yum -y install net-toolsEXPOSE 80CMD echo $MYPATH
CMD echo -----end-----
CMD /bin/bash4. 构建命令
docker build -f dockerfile文件路径 -t 镜像名称:[tag] .docker build -f mydockerfile-centos -t mycentos:0.1 .5.查看镜像的构建历史
docker history 容器id6. CMD 和 ENTRYPOINT 区别
4.1 CMD的一个测试
首先构建一个简单的 CMD 的Dockerfile的镜像
FROM centos:7
CMD [ls, -a]构建镜像
# 容器名称就叫做cmdtest
docker build -f dockerfile-cmd-test -t cmdtest .运行镜像就会发现会执行我们的 CMD指令中的内容,即把当前的目录展示出来
docker run 容器id但是我们想要在 run 的时候后面加命令就会报错例如我run的时候加一个 -l,就会报错, 结合CMD中的命令则会执行该命令-l
docker run 容器id -l报错
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: -l: executable file not found in $PATH: unknown.CMD的指令下-l 替换了 CMD [“ls”, “-a”]命令-l不是命令所以会报错 4.2 ENTRYPOINT 的一个测试
首先构建一个简单的 ENTRYPOINT 的Dockerfile的镜像
FROM centos:7
ENTRYPOINT [ls, -a]构建镜像
# 容器名称就叫做 entrypoint-test
docker build -f dockerfile-cmd-entrypoint -t entrypoint-test .运行镜像就会发现会执行我们的 ENTRYPOINT 指令中的内容,即把当前的目录展示出来,到这块是和CMD是没有区别的
docker run 容器id但是我们想要在 run 的时候后面加命令例如和上面一样 也加一个 -l
docker run 容器id -l如上图所示ENTRYPOINT 时候不是把 run后面加的命令替换掉dockerfile里面的而是 将run 后面加的命令拼接到后面,相当于 ls -al