温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker 镜像创建方法

发布时间:2020-08-02 02:51:09 来源:网络 阅读:227 作者:低调的男孩 栏目:系统运维

Docker 镜像创建方法

Docker镜像创建方法 创建镜像的方法有三种,分别是基于已有的镜像创建、基于本地模板创建、基于Dockerfile 创建,下面着重介绍这三种创建镜像的方法。

一、基于已有镜像创建

首先将镜像加载到容器,将容器里面运行的程序及运行环境打包起来生成新的镜像,需要记住该容器的ID号。
命令格式: docker commit 【选项】 容器ID/名称 仓库名称:【标签】

常用选项:

-m:说明信息  
-a:作者信息  
-p:生成过程中停止容器的运行

例子:

docker create -it nginx /bin/bash #启动容器
docker ps -a #查看容器
docker commit -m "new" -a "zhao" 6f69698fc083 nginx:test #创建新镜像
docker images #查看镜像

Docker 镜像创建方法

二、基于本地模板创建

通过导入系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载
下载地址为:http://download.openvz.org/template/precreated

例子:

下面以debian模板压缩包导入为本地镜像的例子。
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
cat debian-7.0-x86-minimal.tar.gz | docker import - nginx:new

三、基于Dockerfile创建(重点)

Dockerfile是由一组指令组成的文件,每条指令对应linux中一条命令,Docker程序将读取Dockerfile中的指令生成指定镜像。
Dockerfile大致结构:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。每行支持一条指令,每条指令可以携带多个参数,支持以 # 开头的注释。

Dockerfile操作指令:

FROM 镜像 : 指定新的镜像所基于的镜像
MAINTAINER 名字 :说明新镜像的维护人
RUN 命令 : 在所基于的镜像上执行命令,并提交到新的镜像中
CMD ["要运行的程序","参数1","参数2"] : 指定启动容器时要运行的命令或脚本
EXPOSE端口号 : 指定新镜像加载到Docker时要开启的端口
ENV环境变量 变量值 : 设置一个环境变量的值,会背后面的RUN用到
ADD源文件/目录 目标文件/目录 :将源文件复制到目标文件 ,源文件和Dockerfile位于同一目录
COPY源文件/目录 目标文件/目录 :将本地主机的源文件复制到目标目录,源文件和Dockerfile位于同一目录
VOLUME["目录"] : 在容器中创建一个挂载点
USER 用户名 /UID :指定运行容器时的用户
WORKDIR路径 : 为后续的RUN 、CMD、ENTRYPOINT 指定工作目录
ONBUILD命令 : 指定所生成的镜像作为一个基础镜像时所要运行的命令。

Dockerfile例子:

mkdir httpd 创建目录
cd httpd #切换目录
vim Dockerfile #编写dockerfile

#基于基础镜像
FROM centos
#用户信息
MAINTAINER this is httpd image <zhao>
#添加环境包
RUN yum install -y httpd
#指定http端口
EXPOSE 80
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

vim run.sh #编写httpd启动脚本

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

docker build -t httpd:new . #创建新镜像(不要忘了末尾的有 .)
docker run -d -p 80:80 httpd:new #启动镜像
docker ps #查看

Docker 镜像创建方法

Docker 镜像创建方法

Docker 镜像创建方法

网页验证

Docker 镜像创建方法

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI