如何在执行入口点之前将 `docker cp` ssh 密钥发送到 docker 容器

How to `docker cp` ssh key to docker container before its entrypoint is executed

说我现在有这个:

docker run -v /root/.ssh:/root/.ssh:ro my_image

上图的入口点是:

ENTRYPOINT ["echo", "foo"]

相反,我想做这样的事情:

docker run -d --name c my_image   # problem: this will likely exit early :(
docker cp /root/.ssh c:/root/.ssh
docker exec c echo foo

问题是:如何让容器保持活动状态,以便它等待我将 ssh 密钥复制到其中,然后 运行 echo foo 命令?

也许我可以通过告诉它等待 stdin 来让它保持活动状态?但具体如何呢?

您需要先创建容器:

docker create my_image

然后复制文件:

 docker cp /root/.ssh MY_CREATED_CON:/root/.ssh

正常启动容器:

docker start MY_CREATED_CON