鍍金池/ 教程/ Linux/ Docker 實(shí)踐 7:容器與主機(jī)拷貝數(shù)據(jù)
Docker 實(shí)踐 3:fig 搭建 mediawiki
Docker 實(shí)踐 9:備份方案
Docker 實(shí)踐
Docker 實(shí)踐 2:用 Docker 搭建 hg-server
Docker 實(shí)踐 7:容器與主機(jī)拷貝數(shù)據(jù)
Docker 實(shí)踐 6:Cannot connect to the Docker daemon.
Docker 實(shí)踐 5:搭建 redmine
Docker 實(shí)踐 4:搭建 wordpress
Docker 實(shí)踐 8:Compose

Docker 實(shí)踐 7:容器與主機(jī)拷貝數(shù)據(jù)

Docker 實(shí)踐 2 中使用-v 參數(shù)將主機(jī)與容器中相關(guān)目錄聯(lián)系在一起(掛載),所以我們可以用這個(gè)通道將想要互相拷貝的數(shù)據(jù)放入其中,這樣就可以用 cp 命令來復(fù)制文件了。

除了這個(gè)辦法,我們還可以分別用不同的命令來拷貝數(shù)據(jù)。

從容器中像主機(jī)拷貝數(shù)據(jù)

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


    # docker ps
    CONTAINER IDIMAGE COMMANDCREATED STATUS  PORTS NAMES
    a77a72ac178ctutum/apache-php:latest   "/run.sh"  21 hours agoUp 21 hours 0.0.0.0:8080->80/tcp  phpapache_phpapache_1
    # docker-enter a77a72ac178c
    root@a77a72ac178c:~# ls /var/www/html
    index.php  logo.png
    root@a77a72ac178c:~# exit
    logout

    # docker cp a77a72ac178c:/var/www/html /var/www/
    # ls /var/www/
    app  download  index.html
    # ls /var/www/app/
    index.php  logo.png

從主機(jī)向容器中拷貝數(shù)據(jù)

這里要使用一個(gè) docker 提供的神奇通道來完成主機(jī)向容器的數(shù)據(jù)傳輸。

首先要用 docker inspect 方法獲得容器的完整 id,


    inspect   Return low-level information on a container

然后用/var/lib/docker/aufs/mnt/通道來完成拷貝。

舉例如下:


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

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。