DOCKER-1-2-镜像管理

1.进入到redis容器进行终端交互操作,查看根目录,发现是有一个完整的文件系统的。查看nginx容器也是类似的情况。这里说下从外部获取镜像的各种标识。比如从quay.io上pull获取flannel镜像。registry是quay.io,端口没有指明,默认是443(通过https访问端口),namespace是coreos,name是flannel,tags没有指明,默认是latest。

DOCKER-1-2-镜像管理_第1张图片

2.尝试创建镜像,这里使用docker commit的方法。通过-p参数是容器在创建镜像的过程中处于中止状态,否则容器中一直变动生成的镜像就不是我们所希望生成的镜像。这里可以定义repository和tag。如果不进行标注,则默认在本地生成没有名称的镜像。通过tag为镜像打标签。对于初始没有repository的镜像,使用image id进行识别。可以通过rm删除镜像,但当有多个标签的时候,只会untag其中一个标签,而不会删除镜像,因为一个镜像允许有多个标签。

DOCKER-1-2-镜像管理_第2张图片

DOCKER-1-2-镜像管理_第3张图片

DOCKER-1-2-镜像管理_第4张图片

3.通过inspect查看镜像的内部信息,其中cmd参数会显示镜像默认的初始程序。注意:这里daemon off表示必须运行在前台,唯一的初始程序如果不运行在前台,则容器默认关闭。我们自己创建的example/busybox与busybox的初始程序是一样的。

DOCKER-1-2-镜像管理_第5张图片

4.使用之前创建的镜像example/busybox:v0.1-1来运行容器busybox-test,然后通过交互界面进入,可以看到和之前镜像的信息完全一致。

DOCKER-1-2-镜像管理_第6张图片

5.通过commit的-a参数指明作者信息,通过-c参数指明指令,注意这里CMD要大写,-p参数指明创建时中止容器运行。使用刚才创建的镜像来运行容器busybox-test2。查看容器的IP地址。访问IP地址发现httpd已经运行。

DOCKER-1-2-镜像管理_第7张图片

DOCKER-1-2-镜像管理_第8张图片

6.通过save将镜像文件打包,-o指定输出。这里将node1上的打包文件,yum源配置文件,加速json文件,scp到node2(中间同步node2同步安装docker的时候网络出了点问题,重配了下网络DHCP,IP最后一位由132变成了138)。通过load将压缩包中的镜像提取出来。通过ls查看镜像文件列表信息。

DOCKER-1-2-镜像管理_第9张图片

DOCKER-1-2-镜像管理_第10张图片

DOCKER-1-2-镜像管理_第11张图片

你可能感兴趣的:(DOCKER)