Docker镜像的创建、存出、载入的方法

2020-06-17 07:01:27易采站长站整理

创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。

基于已有镜像的容器创建

该方法是使用docker commit命令,其命令格式为:


docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

主要参数选项包括:

-a ,–author=”” 作者信息
-m,–message=”” 提交信息
-p,–pause=true 提交是暂停容器运行

比如,先创建一个运行bash的ubuntu容器:


docker run –it ubuntu /bin/bash

root@d8990fec2141:/# touch test

root@d8990fec2141:/# exit

然后根据创建的这个容器来提交一个新的镜像,提交时需要用到容器ID。


docker commit –m “test” –a “zmc” d8990fec2141 testimage

如果成功的话,就会返回新镜像的长ID号,然后可以查看看在本地已有的镜像:


docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

testimage latest baea98d5a437 About a minute ago 188.3 MB

……

第三行就是刚刚创建的镜像。

PS:利用此容器创建的镜像Id与此容器的镜像id不同,可知它们不是同一镜像。

基于本地模板导入

也可以从操作系统模板文件导入一个镜像,比如使用OpenVZ提供的模板创建,OPENVZ下载模板在:http://openvz.org/Download/template/precreated。

我尝试使用了Ubuntu14.04的模板: 


wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz

下载完之后就可以导入了:


sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

其实只是两个命令,不过很显而易见,就不加解释了。成功的话,就会返回根据模板建立的镜像的长ID


sudo cat ubuntu–14.04–x86_64–minimal.tar.gz | docker import – ubuntu:14.04

ab80404d13d580965b9919b640169ccb585ea7884e6aa9de1ec043075c65fe35

然后就可以查看本地的镜像:


docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

ubuntu 14.04 ab80404d13d5 56 seconds ago 215.4 MB

testimage latest baea98d5a437 29 minutes ago 188.3 MB

….

其实可以看出,虽然模板才75M,但创建的镜像并不小。

镜像的存出和载入

可以利用docker save和docker命令来存出和载入镜像。

存出镜像