linux “出境”使用后如何留住Docker高山集装箱?

qf9go6mv  于 2023-03-07  发布在  Linux
关注(0)|答案(6)|浏览(66)

例如,如果我使用docker run -it alpine /bin/sh命令,它会启动一个终端,之后我可以安装软件包和所有。现在,当我使用exit命令,它会返回到终端。(主一)
那么我怎样才能再次访问同一个容器呢?当我再次运行那个命令时,我得到了一个新的alpine。
请帮帮忙

oyxsuwqo

oyxsuwqo1#

只要指定的run命令进程还在运行,容器就会一直存在。当您指定运行/bin/sh时,一旦退出,sh进程就会死亡,容器也会死亡。
如果你想让你的容器保持运行,你必须让容器内的进程保持运行。对于你的情况(我不确定你想实现什么,我假设你只是在测试),下面的代码将保持它运行

docker run -d --name alpine alpine tail -f /dev/null

然后可以使用以下命令将sh导入容器

docker exec -it alpine sh
q1qsirdb

q1qsirdb2#

拉取图像

docker image pull alpine

看到那个图像了吗

docker image ls   OR  just docker images

看看阿尔卑斯山里面有什么

docker run alpine ls -al

现在你的问题是如何保持 shell

docker container run -it alpine /bin/sh

您正在使用shell脚本命令行。某些发行版可能有bash shell。

docker exec -it 5f4 sh
 / # (<-- you can run linux command here!)

此时,可以使用alpine命令行并执行

ls -al

键入exit来出来-你可以在分离模式下运行它,它会继续运行。
使用exec命令,我们可以再次登录

docker container run -it -d alpine /bin/sh

检查它是否已打开并复制容器ID的前2位数字

docker container ls

使用exec命令登录

docker exec -it <CONTAINER ID or just 2-3 digits> sh

您将需要停止,否则它将继续运行。

docker stop <CONTAINER ID>
6ljaweal

6ljaweal3#

在后台运行Alpine

$ docker run --name alpy -dit alpine
$ docker ps

依附于阿尔卑斯山

$ docker attach alpy
bqujaahr

bqujaahr4#

你应该使用docker start,它允许你启动一个停止的容器。如果你没有命名你的容器,你需要使用docker ps来获得它的name/id。
例如,

$docker ps
CONTAINER ID        IMAGE                        COMMAND
4c01db0b339c        alpine                       bash    

$docker start -i -a 4c01db0b339c
pxyaymoc

pxyaymoc5#

你应该做的是下面

docker run -d --name myalpine alpine tail -f /dev/null

这将确保你的容器不会死。现在无论何时你需要在里面安装包,你只要使用sh进入容器

docker exec -it myalpine /bin/sh

如果由于某种原因容器停止运行,您仍然可以使用

docker start myalpine
hpxqektj

hpxqektj6#

另一个可能更容易记住的解决方案是,只需使用sleep infinity结尾(其他一些Linux发行版也支持),而不是其他地方建议的tail -f /dev/null结尾:

docker run -d --name my_container alpine sleep infinity

运行容器后,可以使用exec参数将容器附加到终端会话:

docker exec -it my_container /bin/sh

相关问题