docker镜像文件传输

docker镜像文件传输,第1张

如果有的网络已经被隔离,无法访问外网,这个时候你还要使用外网的镜像怎么办?

1、在能连接外网的机器上将镜像pull下来,即docker pull xxx:tag

2、将该镜像保存谈旁州为一个tar文件,即

docker save -o xxx.tar  xxx:tag

3、导出tar文含蔽件,拷贝到内网的机器上

4、将tar文件启腊加载为docker镜像,即

docker load --input xxx.tar

5、查看镜像,即

docker images

这个时候可以直接使用这个本地镜像了。

从外部复制到容器内:陪睁

docker cp 文敬如件 容器名:容器内的目标路径

从容器内部复制到容器外:

docker cp 容器名:文件 容器芦稿岁外路径

1.用-v挂载主机数据卷到容器内

[plain] view plaincopy

docker run -v /path/to/hostdir:/mnt $container

在容器内拷贝

cp /mnt/sourcefile /path/to/destfile

2.直接在主机上拷贝到容器物理存储系统

A. 获取容昌蚂滚器名称或者id :

[plain] view plaincopy

$ docker ps

B. 获取整个容器的id

[plain] view plaincopy

$ docker inspect -f '{{.Id}}' 步骤A获取的名称或者id

C. 在主机上物兆拷贝文件:

[plain] view plaincopy

$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE

或者

$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<耐余<id>>/rootfs/root

例子:

[plain] view plaincopy

$ docker ps

CONTAINER ID IMAGECOMMAND CREATED STATUS PORTSNAMES

d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare

$ docker inspect -f '{{.Id}}' cranky_pare

or

$ docker inspect -f '{{.Id}}' d8e703d7e303

d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

3.用输入输出符

[plain] view plaincopy

docker run -i ubuntu /bin/bash -c 'cat >/path/to/container/file' </path/to/host/file/

或者

[plain] view plaincopy

docker exec -it <container_id>bash -c 'cat >/path/to/container/file' </path/to/host/file/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8214606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存