gpt4 book ai didi

ssh - 连接到正在运行的 docker 容器 - 使用 ssh 和运行带有 "-t -i"参数的命令之间的区别

转载 作者:行者123 更新时间:2023-12-01 07:33:01 25 4
gpt4 key购买 nike

你能告诉我安装 openssh-server 和使用给定的 docker 容器启动 ssh session 和运行 docker run -t -i ubuntu/bin/bash 然后执行之间的区别是什么一些操作。 docker attach 与这两种方法相比如何?

最佳答案

不同点 1. 如果你想使用ssh,你需要在Docker镜像上安装ssh并运行在你的容器上。由于额外的负载或从安全角度考虑,您可能不想这样做。一种方法是让您的图像尽可能小 - 避免像 heartbleed 之类的错误 ;)。是否需要 ssh 是一个讨论点,但主要是个人品味。我会说只用它来调试,而不是真正改变你的形象。如果你需要后者,你最好制作一个新的更好的图像。就个人而言,我还没有在 Docker 镜像上安装我的第一个 ssh 服务器。

差异 2. 使用 ssh,您可以按照 CMD 和 Dockerfile 中的 ENTRYPOINT 指定的方式启动容器。然后,Ssh 允许您检查该容器并针对您可能需要的任何用例运行命令。另一方面,如果您使用 bash 命令启动容器,您实际上会覆盖 Dockerfile CMD。如果您随后想要测试该 CMD,您仍然可以手动运行它(可能作为后台进程)。在调试我的图像时,我一直这样做。这是从发展的角度来看。

区别 3. 2nd 的扩展,但从不同的角度来看。在生产中,ssh 将始终允许您检查正在运行的容器。 Docker 在这方面还有其他有用的选项,例如 docker cpdocker logsdocker attach

根据文档“附加命令将允许您查看任何正在运行的容器或与之交互,分离的(-d)或交互式的(-i)。您可以同时附加到同一个容器 - 屏幕共享样式,或快速查看您的守护进程的进度。”但是,我在实际以有用的方式使用它时遇到了麻烦。也许使用它的人可以对此进行详细说明?

这些是唯一的本质区别。图像层、提交或类似的东西没有区别。

关于ssh - 连接到正在运行的 docker 容器 - 使用 ssh 和运行带有 "-t -i"参数的命令之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com