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

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

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

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

宝塔面板7.6企业版Linux安装代码

宝塔面板7.6企业版Linux安装代码

wget -O install.sh http://v7.hostcli.com/install/install-ubuntu_6.0.sh && sudo bash install.sh...

网站成功搬迁

网站成功搬迁...

MBR-GPT模式grub2启动添加windows分区启动

MBRnano /boot/grub/grub.cfg### BEGIN /etc/grub.d/30_os_prober ###  #(自己更改系统名称)menuentry 'Windows 8.1'  {    &nbs...

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下解决EXT4-fs error (/dev/nvme0n1p1):comm ext4lazyinit:bg 16:bad block bitmap checksum

安装smartctl软件sudo apt-get install smartmontools    # Debian/Ubuntusudo yum install smartmontools        # RedHat/CentOSsu...

发表评论

访客

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