docker 容器里面拷文件到宿主机 从宿主机拷文件到docker容器

本文介绍如何在Docker容器与宿主机间传输文件,包括从容器拷贝文件到宿主机及反之的方法。同时,提供了在容器内修改配置文件的实用sed命令示例,帮助解决容器中配置调整难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、从容器里面拷文件到宿主机?

 答:在宿主机里面执行以下命令

         docker cp 容器名:要拷贝的文件在容器里面的路径       要拷贝到宿主机的相应路径 

 示例: 假设容器名为testtomcat,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js,  现在要将test.js从容器里面拷到宿主机的/opt路径下面,那么命令应该怎么写呢?

 答案:在宿主机上面执行命令
 docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

2、从宿主机拷文件到容器里面

  答:在宿主机里面执行如下命令

          docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径

   示例:假设容器名为testtomcat,现在要将宿主机/opt/test.js文件拷贝到容器里面的/usr/local/tomcat/webapps/test/js路径下面,那么命令该怎么写呢?

   答案:在宿主机上面执行如下命令     

docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js

3、在这里在记录一个问题,怎么看容器名称?

  执行命令:docker ps,出现如图所示,其中NAMES就是容器名了。

容器创建好后有时需要进入容器修改配置,发现没有vim,我们可以使用sed命令来修改配置文件
sed -i ‘3s/yes/no/’ a.conf 将a.conf中第3行中的yes修改为no
sed -i ‘3ayes=no’ a.conf 在a.conf中第三行后另起一行(第四行)写入yes=no
sed -i ‘3d’ a.conf 删除a.conf中的第3行
sed -i ' a y e s = n o ′ a . c o n f 在 a . c o n f 末 尾 新 增 1 行 y e s = n o e c h o ′ y e s = n o ′ > > a . c o n f 在 a . c o n f 末 尾 新 增 1 行 y e s = n o 可 以 通 过 c a t − n a . c o n f 或 l e s s − N a . c o n f 查 看 行 号 s e d 是 用 新 文 件 替 换 原 来 的 文 件 , 所 以 在 容 器 中 直 接 修 改 挂 载 的 文 件 时 会 报 D e v i c e o r r e s o u r c e b u s y 资 源 忙 的 错 误 , 因 此 要 重 定 向 e c h o " ayes=no' a.conf 在a.conf末尾新增1行 yes=no echo 'yes=no' >> a.conf 在a.conf末尾新增1行 yes=no 可以通过cat -n a.conf 或 less -N a.conf查看行号 sed是用新文件替换原来的文件,所以在容器中直接修改挂载的文件时会报Device or resource busy资源忙的错误,因此要重定向 echo " ayes=noa.confa.conf1yes=noechoyes=no>>a.confa.conf1yes=nocatna.conflessNa.confsedDeviceorresourcebusyecho"(sed ‘3s/yes/no/’ a.conf )" > a.conf 将a.conf中第3行中的yes修改为no
或 echo “sed ‘3s/yes/no/’ a.conf” > a.conf
通过这几个命令就可以很方便的在容器中修改配置文件了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值