Linux 以交互方式启动docker容器
我有一个非常简单的dockerfile,只有一行,即“来自ubuntu”。我通过命令Linux 以交互方式启动docker容器,linux,docker,Linux,Docker,我有一个非常简单的dockerfile,只有一行,即“来自ubuntu”。我通过命令docker build-t ubuntu\从这个dockerfile创建了一个图像。 我知道我可以从这个图像创建一个新的docker容器,并使用命令以交互方式运行它 docker run-它是我的新容器 我可以稍后使用命令启动这个新容器 启动我的新容器 据我所知,我还应该能够通过它以交互方式使用这个容器 start-i我的新容器 但是,它不起作用。它只是运行和退出。我不能像使用run时那样访问容器的命令提示符。
docker build-t ubuntu\从这个dockerfile创建了一个图像。
我知道我可以从这个图像创建一个新的docker容器,并使用命令以交互方式运行它
docker run-它是我的新容器
我可以稍后使用命令启动这个新容器
启动我的新容器
据我所知,我还应该能够通过它以交互方式使用这个容器
start-i我的新容器
但是,它不起作用。它只是运行和退出。我不能像使用run时那样访问容器的命令提示符。我做错了什么?您可以输入一个运行中的容器:
docker exec -it <container name> /bin/bash
如果容器中没有bash
,则可以将bash
替换为sh
如果需要显式使用UID,如root=UID 0,可以指定:
docker exec -it -u 0 my_new_container /bin/bash
它将把您记录为
root
如果我理解正确,您希望查看终端中容器中的日志,与使用docker run运行图像时相同。如果是这样的话,那就试试看
docker start -a my_docker_container
谢谢你的评论。但是,容器没有运行。如果我执行“启动我的新容器”命令,容器将立即启动并退出。这与执行“docker run--name mybox1 busybox”然后执行“docker start mybox1”相同。(在第一种情况下,您可以让它与“docker run-it--name mybox1 busybox”交互工作,但在第二种情况下,我不知道如何操作。)如果希望容器不退出,你需要确保任何正在运行的主进程都在前台,并且永远不会退出..但有时我需要关闭我的计算机(包括容器),并希望能够以交互方式再次启动它…那么如何以交互方式启动它呢?“您需要确保正在运行的任何主进程都在前台,并且永远不会退出…”谢谢!您已经知道如何以交互方式启动容器(例如,使用TTY)。了解Docker的工作原理,从而了解Docker的工作原理。您无法与已退出的内容交互。。因此,您需要让容器无限期地运行,然后您可以执行命令或shell以进入i,或者将附加到正在运行的容器。。但是您需要从概念上阅读文档,将Docker容器视为单个进程及其所有数据和运行时依赖项的包装可能更容易。您的容器正在运行的进程是什么?不确定您的意思。容器正在运行ubuntu…“ubuntu”不是应用程序。更典型的设置是让容器运行Nginx、PostgreSQL或您编写的Flask应用程序;这些东西没有交互式shell,您不需要“登录”它们。删除和重新创建容器也是非常常规的:我会使用dockerrm;在几乎所有情况下,docker run
overdocker start
。
docker start -a my_docker_container