Docker 容器與主機(jī)拷貝數(shù)據(jù)

2018-06-02 11:15 更新

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

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

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

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

# docker ps
CONTAINER 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 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提供的神奇通道來(lái)完成主機(jī)向容器的數(shù)據(jù)傳輸。 
首先要用docker inspect方法獲得容器的完整id,

 inspect   Return low-level information on a container

然后用/var/lib/docker/aufs/mnt/通道來(lái)完成拷貝。 
舉例如下:

# 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
以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)