如题,我想在 docker 容器内拷贝宿主机 .ssh 目录内的文件,在线搜了半天无结果,在此请大神帮忙,谢谢。
不使用目录映射。
如题,我想在 docker 容器内拷贝宿主机 .ssh 目录内的文件,在线搜了半天无结果,在此请大神帮忙,谢谢。
不使用目录映射。
docker cp :用于容器与主机之间的数据拷贝。
实例
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
docker容器内的shell脚本在不使用目录映射的情况下,访问不到宿主机的文件.
你应该使用DockerFile
的COPY
/ADD
命令,在启动容器时,把需要的文件复制进去
COPY ./.ssh /tmp/.ssh
然后再用docker容器内的shell脚本,对/tmp/.ssh
做你想做的操作
6 回答3.4k 阅读✓ 已解决
8 回答3.6k 阅读
2 回答2.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
提供两种思路:
需要注意的是,这样操作时,容器内尽量不要修改
.ssh
,修改会影响到宿主机,建议拷贝或仅做读取使用。补充:看到你修改了问题描述,不想通过挂载实现,但这基本不太可能做到,如果容器可以随意访问宿主机的文件未免也太不安全了。
如果你是考虑到挂载会有危险,还可以考虑通过挂载并设定
:ro
只读,如: