介绍
指令解释从镜像指定新镜像所基于的镜像,第一条指令必须为从指令,维护者名字说明新镜像的维护人信息运行命令在所基于的镜像上执行命令,并提交到新的镜像中CMD(“要运行的程序”、“参数1,“参数2“)指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后一条被执行暴露端口号暴露镜像端口号,方便运行镜像和提供服务时,映射给外部节点使用ENV环境变量变量值设置一个环境变量的值,会被后面的运行使用添加源文件/目录目标文件/目录从宿主机复制文件到容器,如果是压缩包并进行解压、源文件要与Dockerfile同一目录复制源文件/目录目标文件/目录将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中体积(“目录“)在容器中创建一个挂载点用户用户名/UID指定运行容器时的用户WORKDIR路径为后续的运行CMD,入口点指定工作目录,相当于cdONBUILD命令指定所生成的镜像作为一个基础镜像时所要运行的命令HEALTHCHECK健康检查
这期内容当中小编将会给大家带来有关apache镜像怎么利用dockerfile制作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
一、码头工人镜像
,1.1码头工人镜像
应用的是发布的标准格式
支撑一个码头工人容器的运行
1.2码头工人镜像的创建方法
- <李>
基于已有的镜像创建
李> <李>基于本地模板创建
李> <李>基于dockerfile创建
李>码头工人镜像是分层的结构
①dockerfile中的每个指令都会创建一个新的镜像层
②镜像层将被缓存和复用
③当dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效
④某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效
⑤镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件
二,基于已有的镜像创建实例
将容器里面运行的程序及运行环境打包生成新的镜像
码头工人commit 选项,容器id 想要创建的镜像名:标签
- m:说明信息
——:作者信息
- p:生成过程中停止容器的运行
实例
[root@server1 ~] #, docker ps -a #现有容器 CONTAINER ID ,,, IMAGE ,,,,,,, COMMAND ,,,,,, CREATED ,,,,,, STATUS ,,,,,, PORTS ,,,,,,,的名字 86 cf506635da ,,, centos: 7,,,,,,,/bin/bash",,,,, 6, seconds ago ,,, Up 5, seconds ,,,,,,,,,,,, nervous_shockley (root@server1 ~) #, docker commit -m “image", -a “zf", -p 86 cf506635da 码头工人:new , #创建码头工人:新镜像 sha256: e3056b40acd772abc9a39c6c4f3cb42ba119eb9392b32fb275414f00e82d55b2 (root@server1 ~) #, docker images #查看生成的镜像 REPOSITORY ,,,, TAG ,,,,,,,, IMAGE ID ,,,,, CREATED ,,,,,,的大小 docker ,,,,,, new ,,,,,,,, e3056b40acd7 ,,, 9, seconds ago ,, 267 mb centos ,,,,,, 7,,,,,,,,,, 4 f280dc8c807 ,,, 21, hours ago ,, 267 mb #最好停止容器再创建镜像
三,基于本地模板创建
通过导入操作系统模板文件生成新的镜像
使用wget命令导入为本地镜像
[root@server1 ~] #, cat debian - 7.0 - x86 - minimal.tar.gz |, docker import 作用;daoke: new #导入模板命名镜像名为daoke:新的 (root@server1 ~) #, docker images #查看生成的镜像 REPOSITORY ,,,, TAG ,,,,,,,, IMAGE ID ,,,,, CREATED ,,,,,,的大小 daoke ,,,,,,, new ,,,,,,,, 61 b2d8af0457 ,,, 38, seconds ago , 215 mb docker ,,,,,, new ,,,,,,,, e3056b40acd7 ,,, 10, minutes ago , 267 mb centos ,,,,,, 7,,,,,,,,,, 4 f280dc8c807 ,,, 22, hours ago ,,, 267 mb
四,基于Dockerfile创建
Dockerfile是由一组指令组成的文件。
<强>文件结构:强>
- <李>
基础镜像信息
李> <李>维护者信息
李> <李>镜像操作指令
李> <李>容器启动时执行指令
李>Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#”号开头的注释。
<强> Dockerfil 强> e操作指令:
指令解释从镜像指定新镜像所基于的镜像,第一条指令必须为从指令,维护者名字说明新镜像的维护人信息运行命令在所基于的镜像上执行命令,并提交到新的镜像中CMD(“要运行的程序”、“参数1,“参数2“)指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后一条被执行暴露端口号暴露镜像端口号,方便运行镜像和提供服务时,映射给外部节点使用ENV环境变量变量值设置一个环境变量的值,会被后面的运行使用添加源文件/目录目标文件/目录从宿主机复制文件到容器,如果是压缩包并进行解压、源文件要与Dockerfile同一目录复制源文件/目录目标文件/目录将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中体积(“目录“)在容器中创建一个挂载点用户用户名/UID指定运行容器时的用户WORKDIR路径为后续的运行CMD,入口点指定工作目录,相当于cdONBUILD命令指定所生成的镜像作为一个基础镜像时所要运行的命令HEALTHCHECK健康检查