0
点赞
收藏
分享

微信扫一扫

运维面试 -- docker save和docker export的区别


docker save和docker export的区别

1、save/load,export/import成对使用。
2、docker save保存的是镜像(image),docker export保存的是容器(container);
# docker save busybox:latest -o busybox1.tar
# docker export busybox -o busybox2.tar

可以打开tar文件,看到 busybox1.tar 里面是分层的 --- 镜像
可以打开tar文件,看到 busybox2.tar 里面是文件系统 --- 容器
3、docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
# docker image load -i busybox1.tar
# cat busybox2.tar | docker import - busybox:latest

load 不可以加载容器(busybox2.tar)
export可以导入镜像(busybox1.tar),但是不可用。
4、docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

docker run --link

1. docker run --link的作用
docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。

--link的格式:
--link <name or id>:alias
其中,name和id是源容器的name和id,alias是源容器在link下的别名。

2. --link下容器间的通信
源容器和接收容器之间传递数据是通过以下2种方式:

设置环境变量
更新/etc/hosts文件

1> 设置环境变量
当使用--link时,docker会自动在接收容器内创建基于--link参数的环境变量:
docker会在接收容器中设置名为<alias>_NAME的环境变量,该环境变量的值为:
<alias>_NAME=/接收容器名/源容器alias

接收容器还会获取源容器暴露的环境变量,这些变量包括:
源容器Dockerfile中ENV标签设置的环境变量
源容器用docker run命令创建,命令中包含的 -e或--env或--env-file设置的环境变量

2> 更新/etc/hosts文件
docker会将源容器的hosts更新到目标容器的/etc/hosts中:

使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。


举报

相关推荐

0 条评论