请问docker容器内的shell脚本如何访问宿主机的文件?

作者站长头像
站长
· 阅读数 18

如题,我想在 docker 容器内拷贝宿主机 .ssh 目录内的文件,在线搜了半天无结果,在此请大神帮忙,谢谢。

不使用目录映射。

回复
1个回答
avatar
test
2024-07-02

提供两种思路:

  1. 对于已经运行的容器,通过 cp 命令拷贝
docker cp ~/.ssh/ CONTAINER_ID:/root/
  1. 启动时,通过 -v 直接挂载 volume 进去
docker run -it -v ~/.ssh:/root/.ssh CONTAINER_IMAGE

需要注意的是,这样操作时,容器内尽量不要修改 .ssh,修改会影响到宿主机,建议拷贝或仅做读取使用。

补充:看到你修改了问题描述,不想通过挂载实现,但这基本不太可能做到,如果容器可以随意访问宿主机的文件未免也太不安全了。

如果你是考虑到挂载会有危险,还可以考虑通过挂载并设定 :ro 只读,如:

docker run -it -v ~/.ssh:/root/.ssh:ro CONTAINER_IMAGE
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容