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

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

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

详细说明及使用可参考官方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容器复制到主机” 的相关文章

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

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

ESXI挂载移动硬盘

ESXI挂载移动硬盘

开启ESXI的ssh服务不要接移动硬盘从终端ssh进ESXIssh root@192.168.50.5停止usbarbitrator服务/etc/init.d/usbarbitrator stop chkconfig usbarbitrator off插入移...

debian安装docker通用方法

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

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

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

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

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

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

发表评论

访客

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