提供两种思路:对于已经运行的容器,通过 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
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做你想做的操作
提供两种思路:
需要注意的是,这样操作时,容器内尽量不要修改
.ssh
,修改会影响到宿主机,建议拷贝或仅做读取使用。补充:看到你修改了问题描述,不想通过挂载实现,但这基本不太可能做到,如果容器可以随意访问宿主机的文件未免也太不安全了。
如果你是考虑到挂载会有危险,还可以考虑通过挂载并设定
:ro
只读,如: