码头工人制作镜像
本章结构
-
<李>码头工人镜像的分层李>
<李> Dockerfile基本创建方法李>
<李> Dockerfile创建各种应用容器李>
码头工人镜像的分层
Dockerfile中的每个指令都会创建一个新的镜像层
镜像层将被缓存和复用
当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像缓存就会失效h5> 某一层的镜像缓存失效之后,它的镜像层缓存都会失效h5> 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件
码头工人镜像的创建
码头工人镜像
<李>是应用发布的标准格式李>
<李>可支撑一个码头工人容器的运行
码头工人镜像的创建方法
李>
<李>基于已有镜像创建李>
<李>基于本地模板创建李>
<李>基于Dockerfile创建
基于已有镜像创建
将容器里面运行的程序及运行环境打包生成新的镜像
李>
<代码类=" sql语言">码头工人创造- centos/bin/bash
码头工人commit - m“新”——“daoke a19597abf62d daoke: centos 代码>
<李> - m:说明信息李>
<李>——:作者信息李>
<李> - p:生成过程中停止容器的运行
基于本地模板创建
通过导入操作系统模板文件生成新的镜像
<编辑>使用wget命令导入为本地镜像编辑> 李>
<代码类=" sql语言"> wget http://123.56.134.27/pub/package/LAMP-C7/nginx-1.12.0.tar.gz
猫nginx-1.12.0.tar。广州|进口码头工人,码头工人:新代码>
<编辑>导入成功后可查看本地镜像信息编辑>
<代码类=" sql语言">码头工人图片| grep新代码>
基于Dockerfile创建
Dockerfile是由一组指令组成的文件
Dockerfile结果四部分
<李>基础影响信息李>
<李>维护者信息李>
<李>镜像操作指令李>
<李>容器启动时执行指令
使用Dockerfile创建镜像并在容器中运行
指令
含义
从镜像
指定新镜像所基于的镜像,第一条指令必须为从指令,每创建一个镜像就需要FFROM指令。
维护者名字
说明新镜像的维护人信息
运行命令
在所基于的镜像上执行命令,并提交到新的镜像中
CMD["要运行的程序“,“参数1,“参数2“)
指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后f被执行
暴露端口号
指定新镜像加载到码头工人时要开启的端口
ENV环境变量变量的值
设置一个环境变量的值,会被后面的运行使用
添加源文件/目录目标文件/目录
将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,或者是f的URL
复制源文件/目录目标文件/目录
将本地主机上的文件/目录复制到目标地点,源文件/目录要与DGckerfile在相同的目录中
体积(“目录“)
在容器中创建一个挂载点
用户用户名/UID
指定运行容器时的用户
WORKDIR路径
为后续的跑,CMD,入口点指定工作目录
ONBUILD命令
指定所生成的镜像作为一个基础镜像时所要运行的命令
HEALTHCHECK
健康检查
李>
Dockerfile创建各种应用容器
Dockerfile创建apache镜像容器
<代码类=" sql语言"> mkdir apache
cd apache/vim Dockerfile
#基于的基础镜像
从centos
#维护镜像的用户信息
维护项目& lt; cloude-docker>
#镜像操作指令安装apache软件
运行yum - y更新//更新百胜仓库
运行yum安装httpd - y
80 #开启端口
80年公开
#复制网站首页文件
添加索引。html/var/www/html/index.html
#将执行脚本复制到镜像中
添加运行。sh/run.sh
运行chmod 755/run.sh
#启动容器时执行脚本
CMD (“/run.sh”)
# vim run.sh root@localhost选择
# !/bin/bash
rm射频/运行/httpd/*
exec/usr/sbin/apachectl - d前景
“这是网络”index . html//生成镜像
码头工人建造- t httpd: centos。//新镜像运行容器
码头工人运行- d - p 1216:80 httpd: centos 码头工人制作镜像(apache、systemctl ssh)
镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件
码头工人镜像的创建
码头工人镜像
-
<李>是应用发布的标准格式李>
<李>可支撑一个码头工人容器的运行
码头工人镜像的创建方法
李> <李>基于已有镜像创建李> <李>基于本地模板创建李> <李>基于Dockerfile创建基于已有镜像创建
将容器里面运行的程序及运行环境打包生成新的镜像
李><代码类=" sql语言">码头工人创造- centos/bin/bash 码头工人commit - m“新”——“daoke a19597abf62d daoke: centos 代码>
-
<李> - m:说明信息李>
<李>——:作者信息李>
<李> - p:生成过程中停止容器的运行
基于本地模板创建
通过导入操作系统模板文件生成新的镜像
<编辑>使用wget命令导入为本地镜像编辑> 李><代码类=" sql语言"> wget http://123.56.134.27/pub/package/LAMP-C7/nginx-1.12.0.tar.gz 猫nginx-1.12.0.tar。广州|进口码头工人,码头工人:新代码><编辑>导入成功后可查看本地镜像信息编辑>
<代码类=" sql语言">码头工人图片| grep新代码>
基于Dockerfile创建
Dockerfile是由一组指令组成的文件
Dockerfile结果四部分
-
<李>基础影响信息李>
<李>维护者信息李>
<李>镜像操作指令李>
<李>容器启动时执行指令
使用Dockerfile创建镜像并在容器中运行
指令 含义 从镜像 指定新镜像所基于的镜像,第一条指令必须为从指令,每创建一个镜像就需要FFROM指令。 维护者名字 说明新镜像的维护人信息 运行命令 在所基于的镜像上执行命令,并提交到新的镜像中 CMD["要运行的程序“,“参数1,“参数2“) 指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后f被执行 暴露端口号 指定新镜像加载到码头工人时要开启的端口 ENV环境变量变量的值 设置一个环境变量的值,会被后面的运行使用 添加源文件/目录目标文件/目录 将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,或者是f的URL 复制源文件/目录目标文件/目录 将本地主机上的文件/目录复制到目标地点,源文件/目录要与DGckerfile在相同的目录中 体积(“目录“) 在容器中创建一个挂载点 用户用户名/UID 指定运行容器时的用户 WORKDIR路径 为后续的跑,CMD,入口点指定工作目录 ONBUILD命令 指定所生成的镜像作为一个基础镜像时所要运行的命令 HEALTHCHECK 健康检查 李>Dockerfile创建各种应用容器
Dockerfile创建apache镜像容器
<代码类=" sql语言"> mkdir apache cd apache/vim Dockerfile #基于的基础镜像 从centos #维护镜像的用户信息 维护项目& lt; cloude-docker> #镜像操作指令安装apache软件 运行yum - y更新//更新百胜仓库 运行yum安装httpd - y 80 #开启端口 80年公开 #复制网站首页文件 添加索引。html/var/www/html/index.html #将执行脚本复制到镜像中 添加运行。sh/run.sh 运行chmod 755/run.sh #启动容器时执行脚本 CMD (“/run.sh”) # vim run.sh root@localhost选择 # !/bin/bash rm射频/运行/httpd/* exec/usr/sbin/apachectl - d前景 “这是网络”index . html//生成镜像 码头工人建造- t httpd: centos。//新镜像运行容器 码头工人运行- d - p 1216:80 httpd: centos码头工人制作镜像(apache、systemctl ssh)