詳解在Docker容器內(nèi)外互相拷貝數(shù)據(jù)的方法
如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)?
從容器內(nèi)拷貝文件到主機上
docker cp <containerId>:/file/path/within/container /host/path/target
從主機上拷貝文件到容器內(nèi)
1.用-v掛載主機數(shù)據(jù)卷到容器內(nèi)
docker run -v /path/to/hostdir:/mnt $container
在容器內(nèi)拷貝
cp /mnt/sourcefile /path/to/destfile
2.直接在主機上拷貝到容器物理存儲系統(tǒng)
A. 獲取容器名稱或者id :
$ docker ps
B. 獲取整個容器的id
$ docker inspect -f '{{.Id}}' 步驟A獲取的名稱或者id
C. 在主機上拷貝文件:
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
或者
$ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root
例子:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare
$ docker inspect -f '{{.Id}}' cranky_pare
or
$ docker inspect -f '{{.Id}}' d8e703d7e303
d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
$ sudo cp file.txt /var/lib/docker/aufs/mnt/**d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5
3.用輸入輸出符
docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/
或者
docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個Docker容器集群的方法
這篇文章主要介紹了在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個Docker容器集群的方法,需要的的朋友參考下吧2017-01-01
Docker 安裝 Nginx 并掛載目錄的實現(xiàn)示例
本文介紹了如何使用Docker拉取Nginx鏡像、創(chuàng)建容器,并設(shè)置掛載目錄,掛載目錄用于將容器內(nèi)配置文件與主機關(guān)聯(lián),便于直接修改影響容器配置,感興趣的可以了解一下2024-10-10
在Docker中開發(fā)Java 8 Spring Boot應(yīng)用程序的方法
在本文中,我將向您展示如何使用Java 8開發(fā)和運行簡單的Spring Web應(yīng)用程序,而無需在本地計算機上安裝Java 8。感興趣的朋友跟隨小編一起看看吧2019-10-10
IDEA 通過docker插件發(fā)布springboot項目的詳細教程
這篇文章主要介紹了IDEA 通過docker插件發(fā)布springboot項目的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09

