如何在Docker容器內外互相拷貝資料
阿新 • • 發佈:2018-12-26
從容器內拷貝檔案到主機上
[[email protected] soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d418a7b6021 postgres "/docker-entrypoint. 7 hours ago Up 7 hours test1
[ [email protected] soft]# docker exec -t -i 8d418a7b6021 /bin/bash
[email protected]:/var/lib/postgresql# pwd
/var/lib/postgresql
[email protected]:/var/lib/postgresql# ls
data
[email protected]:/var/lib/postgresql# exit
exit
[[email protected] soft]# docker cp 8d418a7b6021:/var/lib/postgresql/data /opt/soft/
完成拷貝
docker run -v /opt/soft:/mnt 8d418a7b6021
從主機上拷貝檔案到容器內
1.用-v掛載主機資料捲到容器內
通過-v引數,冒號前為宿主機目錄,必須為絕對路徑,冒號後為映象內掛載的路徑。
[ [email protected] soft]# docker run -it -v /opt/soft:/mnt postgres /bin/bash
這種方式的缺點是隻能在容器剛剛啟動的情況下進行掛載
2.直接在主機上拷貝到容器物理儲存系統
[[email protected] soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d418a7b6021 postgres "/docker-entrypoint. 8 hours ago Up 8 hours test1
[ [email protected] soft]# docker inspect -f '{{.Id}}' 8d418a7b6021
8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47
在docker中,其實是對映到/var/lib/docker/devicemapper/mnt/8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47/這個資料夾中的
這個檔案下面就是docker中的根目錄裡面的內容,然後我們就可以按照我們想要的內容隨便進行拷貝了
[[email protected] soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d418a7b6021 postgres "/docker-entrypoint. 7 hours ago Up 7 hours test1
[
[email protected]:/var/lib/postgresql# pwd
/var/lib/postgresql
[email protected]:/var/lib/postgresql# ls
data
[email protected]:/var/lib/postgresql# exit
exit
[[email protected] soft]# docker cp 8d418a7b6021:/var/lib/postgresql/data /opt/soft/
完成拷貝
docker run -v /opt/soft:/mnt 8d418a7b6021
從主機上拷貝檔案到容器內
1.用-v掛載主機資料捲到容器內
通過-v引數,冒號前為宿主機目錄,必須為絕對路徑,冒號後為映象內掛載的路徑。
[
這種方式的缺點是隻能在容器剛剛啟動的情況下進行掛載
2.直接在主機上拷貝到容器物理儲存系統
[[email protected] soft]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d418a7b6021 postgres "/docker-entrypoint. 8 hours ago Up 8 hours test1
[
8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47
在docker中,其實是對映到/var/lib/docker/devicemapper/mnt/8d418a7b60216ed677ada5ca5fe1e82a953af6702837e8e05c95b16d23241d47/這個資料夾中的
這個檔案下面就是docker中的根目錄裡面的內容,然後我們就可以按照我們想要的內容隨便進行拷貝了