Docker之主机拷贝文件到docker镜像容器

更新时间:2023-06-16 08:21:56 阅读: 评论:0

Docker之主机拷贝⽂件到docker镜像容器
朝的笔顺上⼀篇《Docker之⾃定义镜像制作与运⾏(⼀)》我们已经知道怎么运⾏⾃定义镜
像了,但是我们的项⽬运⾏环境⼀般都是会带有配置⽂件的,那么这么将这些配置
⽂件拷贝到镜像中呢?我们就来实践⼀下:
⾸先启动⾃定义镜像容器:jpress
docker run -d -p 8888:8080 jpress
查看容器进程
docker ps
进⼊容器内部
⾄此,我们已经看到容器内部的情况了,接下来我们把⾃⼰⾃定义的⽂件拷贝
到/usr/local ⽬录下,⾸先我们看下/usr/local⽬录下有哪些⽂件
避孕环多少钱cd /usr/local
拷贝单个⽂件到docker容器中:
因为我的系统是Windows的,所以在F盘下创建⼀个⽂件,内容为:
之前安装docker是我安装在D:\java_dev⽬录下的,可以在docker终端查看
那么我们就要先把docker终端⽬录切换到F盘下:
我们已经看到了的⽂件了,接下来就准备将这个⽂件拷贝到容器
的/usr/local⽬录下
docker 7a25b276ce7e:/usr/local/
说明⼀下:7a25b276ce7e是指Jpress容器的ID或者name
然后我们再看⼀下docker容器中是不是多了⼀个⽂件
我们看到jpress容器已经在第⼆次执⾏的时候多了⼀个⽂件了,那么我们来
查看是不是确实是我们主机上的⽂件呢?
可以看出就是我本机上的⽂件,为什么会出现不⼀样呢,那是因为cat显⽰中⽂异常
问题,⼩伙伴可以通过设置cat编码集解决。
拷贝⽂件夹到docker容器中:
⾸先我们还是在F盘中有⼀个logs⽂件夹,⾥⾯有相关⽇志的⼏个⽂件
然后还是在docker终端切换到F盘下,执⾏命令
docker cp logs 7a25b276ce7e:/usr/local/
然后我们看下/usr/local/⽬录下是否拷贝成功
可以看到我们已经把⽂件成功的拷贝到/usr/local⽬录下⾯了。
注意:通过上⾯的⽅法将⽂件拷贝到容器有⼀个很⼤的缺点,那就是当容器stop之后,然后再启动运⾏,之前拷贝的⽂件都已经不存在了,这个是为什么呢?
Docker镜像是由多个⽂件系统(只读层)叠加⽽成.当我们启动⼀个容器的时候,Docker 会加载镜像层并在其上添加⼀个读写层.如果运⾏中的容器修改了现有的⼀个已存在的⽂件,那该⽂件将会从读写层下的只读层复制到读写层,该⽂件的只读版本仍然存在,只是已经被读写层中该⽂件的副本所隐藏.当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失.在Docker中,只读层以及在顶部的读写层的组合被称为Union File System(联合⽂件系统)
解决⽅案:通过Docker Volume修改docker的⽂件挂载,后续我会说明怎么使⽤它。小红帽安妮
第⼆种拷贝⽂件⽅案:
那有没有什么可以直接⼀点呢?当然有,那就是在构建的时候就拷贝进去,那么就需要修改Dockerfile ⽂件,我们来操作⼀下。
⾸先我们把之前的docker容器服务停⽌⼀下
我们先把之前的和logs⽂件拷贝到Dockerfile⽂件⽬录下,这样便于⽂件拷贝,该⽂件在docker默认安装⽬录下:
然后我们来编辑Dockerfile⽂件
vi Dockerfile
接下来就是重新构建镜像
docker build -t jpress:latest .
由于我本地已经把jpress.war⽂件删除了,所以构建失败,但是正因为失败,我们可以发现为什么之前拷贝的⽂件在重启之后会消失,因为镜像容器是构建在/tmp 临时⽂件下的,你⼀旦重启服务之后,这个tmp就会刷新到最初状态,所以⽂件就不存在了。
⽂件不存在了,要么参照我之前⼀篇⽂章《Docker之⾃定义镜像制作与运⾏
(⼀)》去github上下载,要么参照下⼀篇⽂件从docker容器中拷贝出来。
按门铃⽂件已经准备好,重新构建镜像:
docker build -t jpress:latest .
可以看到我们的镜像已经重新构建成功了,那我们再看⼀下本地的镜像有哪些
岳阳楼记书法
docker images
可以看出jpress就是我们刚才构建的镜像,从构建时间可以看出,接下来我们再看下刚才构建的镜像
生活的欢乐冻顶乌龙茶是否把我们所需要的⽂件都拷贝到我们知道的⽬录下了呢?滑板动作
我们先运⾏⼀下容器,然后进⼊容器内部查看各个⽂件所在的位置是否存在
好了,我们已经看到所有的⽂件已经完全拷贝到镜像之中了,那么再也不怕丢失,即使是重启服务也没事了。

本文发布于:2023-06-16 08:21:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/966526.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:容器   镜像   构建   只读
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图