<强>一、码头工人镜像的创建方法强>
码头工人镜像是除了码头工人的核心技术之外,也是应用发布的标准格式。一个完整的码头工人镜像可以支撑一个码头工人容器的运行,在码头工人的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的操作就是在容器中安装应用服务,如果要把已经安装的服务进行迁移,就需要把环境及搭建的服务生成新的镜像。
创建镜像的方法有三种,分别是基于已有镜像创建,基于本地模板创建及基于dockerfile创建。
<强> 1,基于已有镜像创建强>
基于已有镜像创建主要使用码头工人提交命令,其实质就是把一个容器里面运行的程序及该程序的运行环境打包起来生成新的镜像。
<>强命令格式:强>码头工人承诺(选项]容器ID/名称仓库名称:[标签]
引用>
<强>常用选项强>
- m:说明信息;
——:作者信息;
- p:生成过程中停止容器的运行;启动一个镜像,在容器里做修改,然后将修改后的容器提交为新的镜像,需要记住该容器的ID号
<代码> [root@test/] #码头工人ps - #查看当前容器 容器标识图像命令创建状态端口名称 bdd5bb814008码头工人。io/networkboot/了dhcpd”/入口点。sh/b……”5秒前stupefied_ptolemy创建 [root@test/] #码头工人exec - bdd5bb814008/bin/bash #进入到该容器,创建一个测试文件 root@bdd5bb814008:/# ls 本启动核心dev入口点。sh等国内媒体自由lib64 mnt选择proc根运行sbin srv sys tmp usr var root@bdd5bb814008:/#碰用法 root@bdd5bb814008:/#退出 退出 [root@test/] #码头工人commit - m“newdhcp”——“测试”bdd5bb814008码头工人:mydhcp #将已有容器创为镜像 sha256: d6197c6e3f650d3ef69d13324634759705821b0ed516e8fe631fded72acb9d54 [root@test/] #码头工人图片| grep码头工人#查看刚刚创建好的镜像 码头工人mydhcp d6197c6e3f65 24秒前125 MB 码头工人。io/networkboot了dhcpd最新6 f98b6b9b486 19个月前125 MB [root@test/] #码头工人创造——码头工人:mydhcp/bin/bash #添加为容器 ea434b08d511867be662704ee81d0b5876e922efa50f5f52843daa762185c16a [root@test/] #码头工人ps - 容器标识图像命令创建状态端口名称 ea434b08d511码头工人:mydhcp”/入口点。sh/b……”25秒前compassionate_shirley创建 bdd5bb814008码头工人。io/networkboot/了dhcpd”/入口点。sh/b……”5分钟前4分钟stupefied_ptolemy [root@test/] #码头工人开始ea434b08d511 #启动该容器 ea434b08d511 [root@test/] #码头工人exec - ea434b08d511/bin/bash #进入到该容器,查看刚刚所创建的测试文件 root@ea434b08d511:/# ls 本启动核心dev入口点。sh等国内媒体自由lib64 mnt选择proc根运行sbin srv系统测试。txt tmp usr var 代码><强> 2,基于本地模板创建强>
通过导入操作系统模板文件可以生成镜,像模板可以从OPENVZ开源项目下载,下载地址为:http://openvz.org/Download/template/precreated<代码> [root@test/] http://download.openvz.org/template/precreated/ubuntu # wget - 14.04 - x86_64 minimal.tar.gz #下载一个迷你版的Ubuntu模板 猫(root@test/) # ubuntu - 14.04 - x86_64 minimal.tar。广州|进口码头工人,码头工人:新 sha256:7457fecee0fb28ab06d935e7a9a5a040d9d6ec8931959b752f596cde76a5d647 #将模板导入 [root@test/] #码头工人图片| grep新#查看已经导入 码头工人新的7457 fecee0fb大约一分钟前215 MB 代码><强> 3,基于Dockerfile创建强>
Dockerfile是由一组指令组成的文件,其中每条指令对应的Linux中的一条命令,码头工人程序将读取Dockerfile中的指令生成指定镜像。dockerfile结构大致分为四个部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行指令.dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用“#”号开头的注释。
<强> dockerfile中的配置项介绍:强><代码> [root@localhost ~] #码头工人标签码头工人:新的centos7:系统 7 #将上面下载的centos迷你镜像更改下名字及标签,以便区分 (root@localhost ~) #码头工人图片| grep系统 #确认基础镜像已经准备好(就是一个centos 7的迷你系统进行) centos7系统c065d5c0571d大约一个小时前435 MB (root@localhost ~) # vim Dockerfile #编辑一个Dockerfile文件,注意:文件名最好就是Dockerfile 从centos #第一行必须指明基于的基础镜像(该镜像必须存在) centos项目维护者& lt; ljz@centos.org>#维护该镜像的用户信息 #以下是镜像的操作指令 运行yum - y更新 运行yum - y安装openssh服务器 运行sed - i ' s/UsePAM是的/UsePAM no/g的/etc/ssh/sshd_config ssh - keygen - t dsa - f/etc/ssh/ssh_host_dsa_key运行 运行ssh - keygen rsa - f - t/etc/ssh/ssh_host_rsa_key 暴露22 #开启22端口 CMD (“/usr/sbin/sshd”,“- d”】#启动容器时执行指令码头工人镜像的创建与构建私有库