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

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

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

详细说明及使用可参考官方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安装openwrt-raymondwong/openwrt_r9

https://www.sjlx.win/auth/register?code=tIimMethod ONE(recommended): step1: ip link set enp5s0 promisc onstep2: docker network create -...

debian安装docker通用方法

脚本安装wget -qO- get.docker.com | bash首先就是老方法卸载旧版本dockersudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get update安装软件包以允许使用 基...

Fast Os Docker 使用指南

启动命令docker run --name fastos --restart always -p 8081:8081 -p 8082:8082 -d \ -v /var/run/...

debian12安装网心云(安装docker-arm架构通用)

安装dockerapt-get install     ca-certificates     curl     gnupginstall -m 0755 -d /etc/apt/keyringscurl -f...

转换vmware的vmdk格式为qcow2格式

精简版Download binariesqemu-img 2.3.0 for Windows x64完整版下载https://www.qemu.org/download/合并vmdk文件C:\Program Files (x86)\VMware\VMware Workstation>vmwar...

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...

发表评论

访客

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