Docker:我无法在运行时进行卷绑定

Docker: I'm not able to make working a volume binding at runtime

我正在以这种方式执行我的图像:

docker run -it --rm my_image -v ~/.ssh/id_rsa:/home/realtebo/.ssh/id_rsa:ro

所以我希望我的 rsa 私钥在执行时在运行时被复制。

这是我用作入口点的 shell 脚本

pwd
ls -la ~/.ssh

在运行时我得到了这个

/home/realtebo
total 12
drwxr-xr-x 2 realtebo realtebo 4096 Jan 19 08:20 .
drwxr-xr-x 3 realtebo realtebo 4096 Jan 19 08:37 ..
-rw-r--r-- 1 realtebo realtebo  393 Jan 19 08:20 known_hosts

所以工作目录和用户没问题。

note: known_hosts is created at build time

为什么我不能得到我期望的/home/realtebo/.ssh/id_rsa

我使用 docker inspect <container_name 进行了一些调试。我发现:

"HostConfig": {
        "Binds": null,
 ....

但是有什么问题呢?

解决方案:交换 -v 标志和 image_name。 图像名称必须始终是最后一个参数(后跟可选的 cmd 以执行)

所以

docker run -it --rm my_image -v ~/.ssh/id_rsa:/home/realtebo/.ssh/id_rsa:ro

我需要这样执行:

docker run -it --rm v ~/.ssh/id_rsa:/home/realtebo/.ssh/id_rsa:ro my_image