请问docker容器内的shell脚本如何访问宿主机的文件?
如题,我想在 docker 容器内拷贝宿主机 .ssh 目录内的文件,在线搜了半天无结果,在此请大神帮忙,谢谢。
不使用目录映射。
回复
1个回答

test
2024-07-02
提供两种思路:
- 对于已经运行的容器,通过 cp 命令拷贝
docker cp ~/.ssh/ CONTAINER_ID:/root/
- 启动时,通过 -v 直接挂载 volume 进去
docker run -it -v ~/.ssh:/root/.ssh CONTAINER_IMAGE
需要注意的是,这样操作时,容器内尽量不要修改 .ssh
,修改会影响到宿主机,建议拷贝或仅做读取使用。
补充:看到你修改了问题描述,不想通过挂载实现,但这基本不太可能做到,如果容器可以随意访问宿主机的文件未免也太不安全了。
如果你是考虑到挂载会有危险,还可以考虑通过挂载并设定 :ro
只读,如:
docker run -it -v ~/.ssh:/root/.ssh:ro CONTAINER_IMAGE
回复

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