五、使用三种方式创建Docker镜像

作者: 温新

分类: 【Docker】

阅读: 2215

时间: 2020-08-09 11:27:53

创建镜像的三方法方式

创建镜像有的主要方法有三种:基于已有的镜像容器创建、基础本地模板导入、基础Dockerfile创建。

基础已有容器创建

语法

docker [container] commit [options] container [repository[:tag]]

[options]

  • -a,--author="":作者信息
  • -c, --change=[]:提交时执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
  • -m,--message="":提交信息
  • -p,--pause=true:提交时暂时容器运行

案例

首先,pull一个centos

docker pull centos

其次,运行centos

<span style="box-sizing: border-box;padding-right: 0.1px">docker run -it centos /bin/bash</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"># 创建空文件</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">touch test.txt</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">exit</span>

其三,创建容器

<span style="box-sizing: border-box;padding-right: 0.1px">docker container commit -m '新容器,新文件' -a '自如初' b95d19d52a79 test:1.0</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">docker image ls</span>

5_1_commit5_1_commit.jpg

注意,这里的id为容器运行时的ID

导入本地模板文件

可以从一个操作系统模板文件导入一个镜像

语法

docker [image] import [options] file|url| - [REPOSITORY [:TAG]]

案例

首先,在/usr/local/src目录导入nginx1.17.4源码包

其次,使用docker导入

<span style="box-sizing: border-box;padding-right: 0.1px"> cat nginx-1.17.4.tar.gz | docker import - nginx:1.17.4</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> # 或</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> cat nginx-1.17.4.tar.gz | docker image import - nginx:1.17.4_1</span>

5_2_import5_2_import.jpg

基础Dockerfile创建

基础Dockerfile创建是最常见的方式。Dockerfile是一个文本文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。

关于Dockerfile创建,这里暂时不记录,后续会写一篇Dockerfile详细学习记录的文章。

存出与载入镜像

导出镜像

想要把镜像导入到本地文件,那么可以使用docker save命令。

docker save:将指定镜像保存成tar归档文件。

语法

docker save [options] IMAGE [IMAGE...]

[options]

  • -o 导出镜像到指定文件

案例

<span style="box-sizing: border-box;padding-right: 0.1px"># 当前路径  /usr/local/src</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">docker save -o centos.tar centos</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"># 释义:此命令是将centos镜像打包成***.tar文件保存在当前目录下</span>
<span style="box-sizing: border-box;padding-right: 0.1px"># 将镜像导出到指定位置</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">docker image save -o /usr/local/centos.tar.gz centos</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"># 释义:/usr/local/centos.tar.gz 打包成压缩文件的文件名</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"># centos 原镜像文件</span>
导入镜像

docker local:导入使用docker save命令导出的镜像

语法

docker [image] load [options]

[options]

  • -i 指定导入的文件
  • -q 精简输出信息

案例

<span style="box-sizing: border-box;padding-right: 0.1px"> docker image load -i test.tar.gz</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> # 或</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"> docker image load < test.tar.gz </span>

我是夕阳何处寻,期待和优秀的你一起同行!

夕阳何处寻

2020年08月09日

请登录后再评论