快捷搜索:  汽车  科技

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)测试:-L :保持源目标中的链接docker cp [OPTIONS] container:src_path dest_pathdocker cp [OPTIONS] src_path container:dest_pathOPTIONS说明:

在dokcer的日常使用过程中,我们可能会遇到将宿主机内文件/目录copy到容器内,或者将容器的文件/目录copy到宿主机中,下面我们就来简单的谈一下关于这种情况的两种操作。

1、docker cp命令:

用于容器与主机之间的数据copy

语法:

docker cp [OPTIONS] container:src_path dest_path

docker cp [OPTIONS] src_path container:dest_path

OPTIONS说明:

-L :保持源目标中的链接

测试:

以tomcat为例:

docker run -d -p 80:8080 hub.c.163.com/library/tomcat

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(1)

进入容器

docker exec -it edf7 bash

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(2)

测试:

1.1、将容器内文件copy到主机

以webapps文件夹为例

查看路径

pwd:/usr/local/tomcat/webapps

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(3)

在主机内执行如下命令

docker cp edf7eac1beb1:/usr/local/tomcat/webapps /tmp

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(4)

查看tmp目录

如下所示

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(5)

1.2、将主机内文件copy到容器

在odysee家目录创建一个localFile文件

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(6)

将localFile copy到/usr/local/tomcat/

docker cp localFile edf7eac1beb1:/usr/local/tomcat/

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(7)

切换到容器内查看

如下图所示

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(8)

2、 -v挂载主机数据卷到容器

可以直接挂载宿主机文件或目录到容器里,可以理解为目录映射。这样就可以让所有的容器共享宿主机数据,从而只需要改变宿主机的数据源就能够影响到所有的容器数据。

映射关系:

宿主机文件/目录:容器里对应的文件/目录

注意:

宿主机上的文件/目录是要提前创建

容器里对应的文件/目录会自动创建

2.1、创建挂载目录

在odysee家目录下创建一个vol目录

在目录里创建一个文件volFile并输入一句话

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(9)

2.2、启动容器

这里的image以centos为例

docker run -i -t --name vol

-v /home/odysee/vol:/etc/vol

centos /bin/bash

查看容器内volFile文件

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(10)

将volFile copy到容器/根下

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(11)

将容器内的tmp/yum.log文件copy到etc/vol/文件下

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(12)

在宿主机内查看

docker宿主机复制文件(浅谈docker中宿主机和容器之间互相copy文件的两种方式)(13)

测试成功

欢迎大家给予宝贵的意见或者建议。

欢迎大家补充或者共享一些其他的方法。

感谢支持。

猜您喜欢: