我以交互模式运行一些容器。Docker:附加容器的新参数
docker run -i -t --name mycontainer myimage prm1 prm2
ENTERYPOINT是我使用参数的应用程序。
会议结束后,我想开始一个新的参数。
docker start mycontainer
docker attach mycontainer
如何将新参数传递到新会话中?
PS:它是交互式泊坞窗应用程序的合适场景吗?或者我应该为每个新会话创建一个新的容器?
我以交互模式运行一些容器。Docker:附加容器的新参数
docker run -i -t --name mycontainer myimage prm1 prm2
ENTERYPOINT是我使用参数的应用程序。
会议结束后,我想开始一个新的参数。
docker start mycontainer
docker attach mycontainer
如何将新参数传递到新会话中?
PS:它是交互式泊坞窗应用程序的合适场景吗?或者我应该为每个新会话创建一个新的容器?
,如果你离开你的ENTRYPOINT
为默认(sh -c
或my_application
),并使用CMD
而不是为命令参数
CMD prm1 prm2
这意味着,在默认情况下,码头工人,运行时会使用PRM1 PRM2由这是最好的默认情况下,但您可以通过在下一个泊坞窗运行中传递新参数轻松覆盖它们。
该方法(上述)基于运行新容器而不是重新启动“已退出”的方法。
这是常见的做法,作为持久性数据应保存在一个体积(docker volume create),你(重新)安装到新的容器(docker run -v
)
如果你要重新启动容器,并从中受益从不同参数,那就要看你的应用程序:
docker update
命令(PR 15078,仍然issue 22490开放)确实不但如果说应用程序可以读取这些属性文件中,你可以使用docker cp
复制到该容器的上述财产文件的更新版本,在新的特性更新环境变量(仅CPU和内存)
对主持人的注意事项:码头问题是关于堆栈溢出主题的100%。您将在Stack Overflow上找到关于容器和Dockerfile的数千个类似问题。 – VonC