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

时间:2025-05-12 08:16:20

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

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

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

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

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

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

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

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

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

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

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

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

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

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