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

作者: 温新

分类: 【Docker】

阅读: 2534

时间: 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

docker run -it centos /bin/bash

# 创建空文件
touch test.txt

exit

其三,创建容器

docker container commit -m '新容器,新文件' -a '自如初' b95d19d52a79 test:1.0

docker image ls

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

导入本地模板文件

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

语法

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

案例

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

其次,使用docker导入

 cat nginx-1.17.4.tar.gz | docker import - nginx:1.17.4
 # 或
 cat nginx-1.17.4.tar.gz | docker image import - nginx:1.17.4_1
基础Dockerfile创建

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

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

存出与载入镜像

导出镜像

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

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

语法

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

[options]

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

案例

# 当前路径  /usr/local/src
docker save -o centos.tar centos

# 释义:此命令是将centos镜像打包成***.tar文件保存在当前目录下
# 将镜像导出到指定位置
docker image save -o /usr/local/centos.tar.gz centos

# 释义:/usr/local/centos.tar.gz 打包成压缩文件的文件名
# centos 原镜像文件
导入镜像

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

语法

docker [image] load [options]

[options]

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

案例

 docker image load -i test.tar.gz
 # 或
 docker image load < test.tar.gz 
请登录后再评论