詳解在Docker容器內外互相拷貝數據的方法
更新時間:2017年03月10日 09:11:28 作者:yangzhenping
本篇文章主要介紹了詳解在Docker容器內外互相拷貝數據的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
如何在Docker容器內外互相拷貝數據?
從容器內拷貝文件到主機上
復制代碼 代碼如下:
docker cp <containerId>:/file/path/within/container /host/path/target
從主機上拷貝文件到容器內
1.用-v掛載主機數據卷到容器內
docker run -v /path/to/hostdir:/mnt $container
在容器內拷貝
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/
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
使用 kind 和 Docker 啟動本地的 Kubernetes環(huán)境
這篇文章主要介紹了使用 kind 和 Docker 啟動本地的 Kubernetes環(huán)境,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05docker 創(chuàng)建RedHat8.5鏡像的命令
這篇文章主要介紹了docker 創(chuàng)建RedHat8.5鏡像的命令,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03