`
modabobo
  • 浏览: 502308 次
文章分类
社区版块
存档分类
最新评论

Docker实践7:容器与主机拷贝数据

 
阅读更多

Docker实践2中使用-v参数将主机与容器中相关目录联系在一起(挂载),所以我们可以用这个通道将想要互相拷贝的数据放入其中,这样就可以用cp命令来复制文件了。

除了这个办法,我们还可以分别用不同的命令来拷贝数据。

从容器中像主机拷贝数据

docker提供了cp命令,用法如下:

# docker ps
CONTAINER ID        IMAGE                     COMMAND                CREATED             STATUS              PORTS                         NAMES        
a77a72ac178c        tutum/apache-php:latest   "/run.sh"              21 hours ago        Up 21 hours         0.0.0.0:8080->80/tcp          phpapache_phpapache_1
# docker-enter a77a72ac178c
root@a77a72ac178c:~# ls /var/www/html
index.php  logo.png
root@a77a72ac178c:~# exit
logout

# docker cp a77a72ac178c:/var/www/html /var/www/
# ls /var/www/
app  download  index.html
# ls /var/www/app/
index.php  logo.png

从主机向容器中拷贝数据

这里要使用一个docker提供的神奇通道来完成主机向容器的数据传输。
首先要用docker inspect方法获得容器的完整id,

 inspect   Return low-level information on a container

然后用/var/lib/docker/aufs/mnt/通道来完成拷贝。
举例如下:

# docker inspect -f '{{.Id}}' a77a72ac178c
a77a72ac178c1e35708d2af446197c10239b0b1bd8932104578e334b83eb93a2
# cp docker/docker-start.sh /var/lib/docker/aufs/mnt/a77a72ac178c1e35708d2af446197c10239b0b1bd8932104578e334b83eb93a2/root/
# docker-enter a77a72ac178c
# pwd
/root
# ls
docker-start.sh
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    docker容器与宿主机的数据交互方式总结

    docker cp :用于容器与主机之间的数据拷贝。 语法 # 容器内文件 copy to 宿主机 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- # 宿主机文件 copy to 容器内 docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_...

    详解在Docker容器内外互相拷贝数据的方法

    如何在Docker容器内外互相拷贝数据?  从容器内拷贝文件到主机上 代码如下: docker cp &lt;containerId&gt;:/file/path/within/container /host/path/target 从主机上拷贝文件到容器内 1.用-v挂载主机数据卷到容器内 ...

    修改已有docker容器中的内容方法

    2、从宿主机拷贝文件到容器 docker cp /opt/test/file.txt mycontainer:/opt/testnew/ 需要注意的是,不管容器有没有启动,拷贝命令都会生效。 当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,...

    Docker数据卷和容器编排的使用

    数据卷可以绕过拷贝系统,在多个容器之间、容器和宿主机之间共享目录或文件,数据卷绕过了拷贝系统,可以达到本地磁盘I/O性能。 运行容器时,指定一个数据卷 $ docker run -itd --name nginx -v /usr/share/nginx/...

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

    从容器内拷贝文件到主机上 [root@oegw1 soft]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8d418a7b6021 postgres /docker-entrypoint. 7 hours ago Up 7 hours test1 [root@oegw1 soft]# ...

    Nginx Docker安装配置

    $ docker cp lw-nginx:/etc/nginx/nginx.conf /colorfulfrog/nginx/config –-将容器中的nginx.conf拷贝到宿主目录下 $ docker cp lw-nginx:/usr/share/nginx/html /colorfulfrog/nginx –-将容器中的html目录内容...

    Docker容器中Mysql数据的导入/导出详解

    解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的...

    docker下mysql 8.0.20 安装配置方法图文教程

    docker安装mysql版本8.0.20,供大家参考,具体内容如下 第一步 下拉镜像 docker pull mysql:8.0.20 第二步 启动镜像 docker run -p 3306:3306 --name mysql -e MYSQL_...拷贝容器的 /etc/mysql目录到 主机目录/mnt/s

    Docker参数常用方法及解释

    #拷贝docker容器中的目录或文件到宿主机当前路径(注意这个.) #例:docker cp maven:/root/app/maven.tar.gz . docker ps -a –no-trunc # –no-trunc显示完整commod指令 volume (-v) #映射宿主机目录(可共享),...

    docker安装mysql 8.0.20 版本 超详细教程

    docker安装mysql版本8.0.20 第一步 下拉镜像 docker pull mysql:8.0.20 第二步 启动镜像 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=...拷贝容器的 /etc/mysql目录到 主机目录/mnt/sda1/mysql8.

    Docker 数据卷操作的实现

    在前面的案例中,如果我们需要将数据从宿主机拷贝到容器中,一般都是使用 Docker 的拷贝命令,这样性能还是稍微有点差,没有办法能够达到让这种拷贝达到本地磁盘 I/O 性能呢?有! 数据卷可以绕过拷贝系统,在多个...

    网站热图生成工具ClickHeat 1.4 Docker镜像导出文件

    由网站热图生成工具ClickHeat 1.4版本开源软件制作而成的Docker镜像导出文件,仅需要本机可以运行docker容器即可,无需下载ClickHeat源码,紧需要执行下面步骤即可运行ClickHeat系统,然后在系统中针对要生成热图的...

    Dockerfile常用命令

    FROM:基础镜像,当前新镜像是基于那个镜像的 ...VOLUME:容器数据卷,用于数据保存和和持久化工作 CMD:指定一个容器启动时要运行的命令。(Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被docker run之

    使用docker -v 和 Publish over SSH插件实现war包自动部署到docker的操作步骤

    上篇文章在docker容器挂载宿主主机目录 中介绍了运行docker时的一个重要命令 -v sudo docker run -p 8822:8080 --name tomcat_xiao_volume -v /home/xiaochangwei/test:/usr/local/tomcat/webapps xiaochangwei/...

    Docker 常用 指令 | 命令 | 语法 | 说明

    传送门Docker常用指令Dcoker信息镜像操作镜像查看镜像搜索镜像下载镜像删除镜像构建容器操作容器启动容器进程容器日志容器的进入与退出查看容器容器的停止与删除生成镜像容器与主机间的数据拷贝 原创文章 23获赞 ...

    Docker创建本地镜像实现方法解析

    所谓的容器实际上是在父镜像的基础上创建了一个可读写的文件层级,... 将宿主机中一个名为index.html的文件拷贝到容器中。 访问容器,发现改变已经生效。 接下来再重新创建一个容器,名为nginx2. 访问nginx2,发现n

    百度地图毕业设计源码-k8s1.10.3:unixhot拷贝的

    百度地图毕业设计源码 SaltStack自动化部署Kubernetes SaltStack自动化部署Kubernetes v1.10.3版本(支持TLS双向认证、RBAC授权...云计算与容器架构师:252370310 使用手册 手动部署 必备插件 案例架构图 1.系统初始化

    docker技术文档-v1.0.pdf

    3 DOCKER 的安装 ...............................................................................................................................................7 3.1 DOCKER 服务的常用操作.................

    vSphere Update Manager 安装和管理

    VIC始于虚拟容器主机(VCH)。实际上,VCH是一个用于支持容器运行的完整的虚拟环境。每个VCH接收硬件资源,能够像管理其他传统虚拟机那样管理VCH,虚拟环境中可以有多个VCH。VCH还为开发人员提供了访问Docker的API。...

Global site tag (gtag.js) - Google Analytics