Docker实践7:容器与主机拷贝数据

来源:互联网 发布:国泰君安快期交易软件 编辑:程序博客网 时间:2024/05/01 09:31

Docker实践7:容器与主机拷贝数据

在Docker实践2中使用-v参数将主机与容器中相关目录联系在一起(挂载),所以我们可以用这个通道将想要互相拷贝的数据放入其中,这样就可以用cp命令来复制文件了。

除了这个办法,我们还可以分别用不同的命令来拷贝数据。

从容器中向主机拷贝数据

Docker提供了cp命令,用法如下:

# docker psCONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                         NAMES        a77a72ac178c        tutum/apache-php:latest   "/run.sh"              21 hours ago        Up 21 hours         0.0.0.0:8080->80/tcp          phpapache_phpapache_1# docker-enter a77a72ac178croot@a77a72ac178c:~# ls /var/www/htmlindex.php  logo.pngroot@a77a72ac178c:~# exitlogout# docker cp a77a72ac178c:/var/www/html /var/www/# ls /var/www/app  download  index.html# ls /var/www/app/index.php  logo.png
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

从主机向容器中拷贝数据

这里要使用一个docker提供的神奇通道来完成主机向容器的数据传输。 
首先要用docker inspect方法获得容器的完整id,

 inspect   Return low-level information on a container
  • 1
  • 1

然后用/var/lib/docker/aufs/mnt/通道来完成拷贝。 
举例如下:

# docker inspect -f '{{.Id}}' a77a72ac178ca77a72ac178c1e35708d2af446197c10239b0b1bd8932104578e334b83eb93a2# cp docker/docker-start.sh /var/lib/docker/aufs/mnt/a77a72ac178c1e35708d2af446197c10239b0b1bd8932104578e334b83eb93a2/root/# docker-enter a77a72ac178c# pwd/root# lsdocker-start.sh

0 0
原创粉丝点击