像例如,如果我使用命令docker run -it alpine /bin/sh
它启动一个终端之后,我可以安装包和所有。现在当我使用exit
命令时,它会返回到终端。 (主要的)如何使用“退出”后保留码头高山容器?
那么我怎样才能再次访问相同的容器? 当我再次运行该命令时,我得到一个新的阿尔卑斯山。
请帮
像例如,如果我使用命令docker run -it alpine /bin/sh
它启动一个终端之后,我可以安装包和所有。现在当我使用exit
命令时,它会返回到终端。 (主要的)如何使用“退出”后保留码头高山容器?
那么我怎样才能再次访问相同的容器? 当我再次运行该命令时,我得到一个新的阿尔卑斯山。
请帮
容器住,只要在指定运行命令进程仍在运行。当你指定运行/bin/sh
时,一旦你退出,sh进程将会死亡,你的容器也会死掉。
如果你想保持你的容器运行,你必须保持进程内运行。对于你的情况(我不知道你想acheive什么,我以为你只是测试),下面就然后你就可以sh
入容器使用保持运行
docker run -d --name alpine alpine ping localhost
docker exec -it alpine sh
所以我怎么能让它保持运行,并在以后回复 –
@ user8094908回答udpated。 – yamenk
这是我想要做的...我想在docker中运行alpine,然后在该命令行上安装git,ant和maven。所以当我退出容器时,安装的东西应该留下,当我回来时我可以继续我的工作... –
你应该做的是低于
docker run -d --name myalpine alpine tail -f /dev/null
这将确保你的容器不会死亡。现在,每当你需要安装在你里面包的容器内只得到使用SH
docker exec -it myalpine /bin/sh
如果由于某种原因,你的容器死了,你仍然可以再次使用
docker start myalpine
这只是回应单词myalpine,并没有启动容器... –
它在背景中启动它。我用'-d'替换了'-it',这意味着分离模式。 '-d,--detach在后台运行容器并打印容器ID' –
非常感谢。我想有很多方法可以做到这一点。我也会检查这个方法。 –
您应该使用docker start
启动它,它允许你启动一个停止的容器。如果您未指定容器名称,则需要使用docker ps
来获取名称/ ID。
例如,
$docker ps
CONTAINER ID IMAGE COMMAND
4c01db0b339c alpine bash
$docker start -i -a 4c01db0b339c
只是打印容器ID,什么都不做 –
@ user8094908啊哎呀!这只是启动容器。你也需要重视它。我已经更新了我的答案。 – logix
非常感谢我将此页面加入书签以供进一步参考。 –
的可能的复制[如何保持码头工人容器中运行启动服务后?(https://stackoverflow.com/questions/25775266/how-to-keep-docker-container - 运行后启动服务) –