如何在Docker容器内外互相拷贝数据?

如何在Docker容器内外互相拷贝数据?

 

从容器内拷贝文件到主机上

docker cp <containerId>:/file/path/within/container /host/path/target

 

从主机上拷贝文件到容器内

参考自:

http://stackoverflow.com/questions/22907231/copying-files-from-host-to-docker-container

1.用-v挂载主机数据卷到容器内

 

docker run -v /path/to/hostdir:/mnt $container
在容器内拷贝
cp /mnt/sourcefile /path/to/destfile

 

 

2.直接在主机上拷贝到容器物理存储系统

 

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/

 

时间: 2024-10-29 20:36:17

如何在Docker容器内外互相拷贝数据?的相关文章

如何在 Docker 容器中架设一个完整的 WordPress 站点

大家好,今天我们来学习一下如何在 Docker 容器里运行的 Nginx Web 服务器中安装 WordPress.WordPress 是一个很好的免费开源的内容管理系统,全球成千上万的网站都在使用它.Docker 是一个开源项目,提供了一个可以打包.装载和运行任何应用的轻量级容器的开放平台.它没有语言支持.框架和打包系统的限制,从小型的家用电脑到高端服务器,在何时何地都可以运行.这使它们可以不依赖于特定软件栈和供应商,像一块块积木一样部署和扩展网络应用.数据库和后端服务. 今天,我们会在 do

如何在Docker容器中运行GUI程序

如何在Docker容器中运行GUI程序 各位,今天我们将学习如何在Docker之中运行GUI程序.我们可以轻易地在Docker容器中运行大多数GUI程序且不出错.Docker是一个开源项目,提供了一个打包.分发和运行任意程序的轻量级容器的开放平台.它没有语言支持.框架或者打包系统的限制,并可以运行在任何地方.任何时候,从小型的家用电脑到高端的服务器都可以运行.这让人们可以打包不同的包用于部署和扩展网络应用,数据库和后端服务而不必依赖于特定的栈或者提供商. 下面是我们该如何在Docker容器中运行

如何在 Docker 容器中运行支持 OData 的 JBoss 数据虚拟化 GA

大家好,我们今天来学习如何在一个 Docker 容器中运行支持 OData(译者注:Open Data Protocol,开放数据协议) 的 JBoss 数据虚拟化 6.0.0 GA(译者注:GA,General Availability,具体定义可以查看WIKI).JBoss 数据虚拟化是数据提供和集成解决方案平台,将多种分散的数据源转换为一种数据源统一对待,在正确的时间将所需数据传递给任意的应用或者用户.JBoss 数据虚拟化可以帮助我们将数据快速组合和转换为可重用的商业友好的数据模型,通过

如何在 Docker 容器之间设置网

你也许已经知道了,Docker 容器技术是现有的成熟虚拟化技术的一个替代方案.它被企业应用在越来越多的领域中,比如快速部署环境.简化基础设施的配置流程.多客户环境间的互相隔离等等.当你开始在真实的生产环境使用 Docker 容器去部署应用沙箱时,你可能需要用到多个容器部署一套复杂的多层应用系统,其中每个容器负责一个特定的功能(例如负载均衡.LAMP 栈.数据库.UI 等). 那么问题来了:有多台宿主机,我们事先不知道会在哪台宿主机上创建容器,如果保证在这些宿主机上创建的容器们可以互相联网? 联网

如何在 Docker 容器中运行 Kali Linux 2.0

介绍 Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近,Kali Linux 2.0 发布了,它被认为是这个操作系统最重要的一次发布.另一方面,Docker 技术由于它的可扩展性和易用性让它变得很流行.Dokcer 让你非常容易地将你的程序带给你的用户.好消息是你可以通过 Docker 运行Kali Linux 了,让我们看看该怎么做 :) 在 Docker 中运行 Kali Linux 2.0 相关提示 如果你还没有

通过Docker容器运行持续集成/持续部署

本文讲的是通过Docker容器运行持续集成/持续部署,[编者的话] 对于Docker主流的应用场景:持续集成和持续部署(CI/CD)大家也许并不陌生.这篇文章从独特的视角阐述了如何利用各种云平台构建属于自己的CI/CD容器,笔者还自己扩展了Gitlab CI引擎,对CI感兴趣的同学对这个文章应该很感兴趣. 我曾经使用Docker了一段时间,在过去的一年里伴随着众多的Docker容器涌入,帮助用户们更容易的部署Docker容器到生产环境中.一些工具是第三方公司提供,当然也包括Docker公司自己的

如何在Ubuntu14.04的Docker容器中运行OpenVPN?

本文讲的是如何在Ubuntu14.04的Docker容器中运行OpenVPN?,[编者的话]本文来自DigitalOcean,DigitalOcean是美国的虚拟专用服务器提供商,本文主要介绍了如何在Ubuntu14.04上创建使用OpenVPN Docker容器. 介绍 本教程将介绍如何使用Docker来设置和运行OpenVPN容器. OpenVPN提供了一种方法来创建TLS加密(SSL的演进)的虚拟专用网络(VPN).它可以防止网络流量被窃取和中间人(MITM)攻击.专用网络可以用来安全地连

如何共享数据?- 每天5分钟玩转 Docker 容器技术(41)

数据共享是 volume 的关键特性,本节我们详细讨论通过 volume 如何在容器与 host 之间,容器与容器之间共享数据. 容器与 host 共享数据 我们有两种类型的 data volume,它们均可实现在容器与 host 之间共享数据,但方式有所区别. 对于 bind mount 是非常明确的:直接将要共享的目录 mount 到容器.具体请参考前面 httpd 的例子,不再赘述. docker managed volume 就要麻烦点.由于 volume 位于 host 中的目录,是在

&lt;转载&gt;在数据科学环境中使用 Docker 容器

容器是传统虚拟机的轻量级版本.它们不会占用您服务器上的大量空间,易于创建和消除,而且启动速度很快.它们还可以轻松地创建可重复使用的数据科学环境. 对于数据科学家来说,可以直接运行一个已经配备了执行特定分析所需的各种库和工具的容器,而无需花费几个小时在不同的环境中调试数据包或配置自定义的环境.这就是为什么 DataScience.com 使用 Docker 容器来处理该平台上的各种应用程序,例如用户可以启动独立的 Jupyter 和 RStudio 会话,其中已经配备了他们选择的库和工具. 什么是