gpt4 book ai didi

security - 最佳实践-重新运行bash以附加到Docker运行实例

转载 作者:行者123 更新时间:2023-12-02 20:50:31 25 4
gpt4 key购买 nike

这是Docker新手提出的另一个问题。目前,我使用bash在“ Debug模式”下运行Docker镜像,以便可以对正在运行的实例进行docker attach进入 shell 程序,以在运行时检查应用程序的OS环境等。

docker run <image-id> -d -it bash -c “<start application in background>; bash”

我想知道是否应该始终包含 bash,即将 CMD中的 DockerfileCMD <start application in foreground>更改为 CMD <start application in background>; bash

在“生产模式”下不合适吗?

出于安全原因,
  • -谁可以附加到正在运行的实例?
  • 鉴于Docker是 application isolation tool, not an OS virtualization tool,,所以
  • 是否还有其他原因?
  • 最佳答案

    不要在生产中这样做。

    您希望您的应用成为最前端的进程(PID 1),而不是bash。

    理想情况下,您的dev容器将与生产容器相同,因此,除了临时测试情况外,我什至不会在开发人员中使用该bash方法。如有需要,您随时可以将docker exec放入容器中。例如。,
    docker exec -it {container-name} /bin/bash
    哪里:

    >   -i, --interactive    Keep STDIN open even if not attached
    > -t, --tty Allocate a pseudo-TTY


    根据需要更改可执行文件的名称(例如 /bin/sh等)。您可能需要为某些容器设置TERM环境变量。 (例如 export TERM=xterm)。

    要仅返回结果并关闭,请省略 -it,例如:
    docker exec {container-name} ifconfig
    您希望习惯于处理诸如“一劳永逸”(set-and-forget)之类的容器,或者至少不需要在生产后便需要手动对其进行访问。

    关于security - 最佳实践-重新运行bash以附加到Docker运行实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427681/

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