当前位置:首页 > 未分类 > 正文内容

将文件从Docker容器复制到主机

jxcq4年前 (2022-05-27)未分类75

详细说明及使用可参考官方docker cp文档

说明

在容器和本地文件系统之间复制文件/文件夹

用法

$ docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
$ docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

例如,docker正在运行了一个jenkins,CONTAINER ID为3a3d34f3a3c0,接下来以此容器做展示:

CONTAINER IDIMAGE
其他略NAMES
3a3d34f3a3c0docker.io/jenkins/jenkins:lts其他略jenkins

注:以下命令中使用 CONTAINER ID 的地方也可用 NAMES 代替

容器到主机

将文件或文件夹从Docker容器复制到本地文件系统。

重要:此种有两种情况需要区分,第一种你在主机,第二种你已经进入了docker jenkins容器中

  • 第一种:在主机

将jenkins容器中 /var/jenkins_home/project1 目录拷贝到主机的 /srv/jenkins
$ docker cp 3a3d34f3a3c0:/var/jenkins_home/project1 /srv/jenkins

# 将jenkins容器中 /var/jenkins_home/project1 目录中 README.md 文件拷贝到主机的 /srv/jenkins
$ docker cp 3a3d34f3a3c0:/var/jenkins_home/project1/README.md /srv/jenkins

# 将jenkins容器中 /var/jenkins_home/project1/build 目录中所有文件拷贝到主机的 /srv/jenkins/www
$ docker cp 3a3d34f3a3c0:/var/jenkins_home/project1/build/. /srv/jenkins/www

# 将jenkins容器中 /var/jenkins_home/project1/build 目录中 README.md 文件拷贝到当前本地工作目录
$ docker cp 3a3d34f3a3c0:/var/jenkins_home/project1/build/README.md .

如果容器中不存在复制的目录或文件,则报错

  • 第二种:已经进入了docker jenkins容器中(docker exec -it “3a3d34f3a3c0” bash)

将jenkins容器中/var/jenkins_home/workspace/project2/build中所有文件拷贝到主机的/srv/www中

前置环境变量:

$ export JENKINS_HOME=/srv/jenkins
$ export NGINX_WWW=/srv/www

需要借助docker run –volume,docker jenkins启动命令需要改成:

$ docker run --name jenkins -u root -d -p 7199:8080 -p 50000:50000 -v $JENKINS_HOME:/var/jenkins_home -v $NGINX_WWW:/srv/www docker.io/jenkins/jenkins:lts

重要:额外增加了一个参数


$NGINX_WWW:/srv/www``` 挂载目录
最后,直接执行即可
```js
$ cp -rf /var/jenkins_home/workspace/project2/build/. /srv/www/


解决docker exec -it提示 no such container的问题 原创

运维灬小兵2022-06-28 18:26:58博主文章分类:Docker



Docker exec 出现 “fork/exec /proc/self/exe: no such file or directory” 问题


可以通过nsenter进入


# docker inspect -f {{.State.Pid}} 容器ID

6670

# nsenter -t 6670 -m -u -i -n -p


主机到容器

将文件或文件夹从本地文件系统复制到Docker容器,其工作原理相同

# 将主机的 /srv/jenkins 拷贝到jenkins容器中 /var/jenkins_home/project1 目录
$ docker cp /srv/jenkins  3a3d34f3a3c0:/var/jenkins_home/project1

# 将主机的 /srv/jenkins 目录中 README.md 拷贝到jenkins容器中 /var/jenkins_home/project1文件
$ docker cp /srv/jenkins/README.md 3a3d34f3a3c0:/var/jenkins_home/project1

# 将主机的 /srv/jenkins/www 中所有文件拷贝到jenkins容器中 /var/jenkins_home/project1/build 目录
$ docker cp /srv/jenkins/www/. 3a3d34f3a3c0:/var/jenkins_home/project1/build

# 将当前本地工作目录拷贝到jenkins容器中 /var/jenkins_home/project1/build 目录中
$ docker cp . 3a3d34f3a3c0:/var/jenkins_home/project1/build


扫描二维码推送至手机访问。

版权声明:本文由小强的小站发布,如需转载请注明出处。

本文链接:https://zblog.dragon2024.cloudns.ch/?id=9

分享给朋友:

“将文件从Docker容器复制到主机” 的相关文章

群晖DOCKER安装Homeassistant

1、打开DOCKER注册表搜索Homeassistant2、选择官方版。3、双击Homeassistant下载。(用homeassistant/home-assistant:2021.5.2-支持自定义插件)homeassistant/home-assistant:2022.8.2-支持(1.x-m...

omv5-omv6-换源-扩展插件-docker

ovm5换源:https://blog.csdn.net/weixin_39916479/article/details/119500845#安装omv-extras-pluginswget -O - https://github.com/OpenMediaVault-Plugin-Develope...

RouteOs安装容器+端口转发与回流

RouteOs安装容器查看当前Device-Mode/system/device-mode/ print当在enterprise模式下,启用container模式/system/device-mode/update container=yes重启设备(这步要非常注意)创建网络为容器添加veth接口:...

beellink mini 905X2-TVbox arm-debian下用QEMU软件虚拟x86_64环境安装mikrotik routeos-chr的尝试

beellink mini 905X2-TVbox arm-debian下用QEMU软件虚拟x86_64环境安装mikrotik routeos-chr的尝试

sudo apt-get install qemusudo apt-get install qemu-system-x86sudo apt-get install qemu-system-armsudo apt-get install qemu-utils#apt-install libsdl1.2...

ESXI8-RDM直通配置【指定硬盘直通】

ESXI8-RDM直通配置【指定硬盘直通】

1、RDM直通配置【指定硬盘直通】1、查询ESXI系统所在硬盘的UUIDESXI web界面——存储——数据存储——【自己存储的名字】——产看并记录下UUID(不用查直通硬盘的UUID)要查现有数据的uuid(datastroe1)         ...

debian12查看硬盘分区UUID

df  -lfdisk -lls -l /dev/disk/by-uuid开机挂载硬盘:nano /etc/fstabUUID=xxxxxxxx-b23a-974c-96b5-da80140d5d38      /root/docker/hdd/wxy&nbs...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。