使用 "exit" 后如何保留 docker alpine 容器?

How to retain docker alpine container after "exit" is used?

例如,如果我使用命令 docker run -it alpine /bin/sh 它启动了一个终端,之后我可以安装包和所有的东西。现在,当我使用 exit 命令时,它会返回到终端。 (主要)

那么我怎样才能再次访问同一个容器呢? 当我再次 运行 该命令时,我得到了一个新的 alpine。

请帮忙

只要指定的 运行 命令进程仍在 运行ning,容器就会存在。当您指定 运行 /bin/sh 时,一旦您退出,sh 进程将终止,您的容器也会终止。

如果你想保留容器 运行ning,你必须将进程保留在 运行ning 中。对于你的情况(我不确定你想要达到什么目的,我假设你只是在测试),下面将保留它 运行ning

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

然后你可以sh使用

进入容器
docker exec -it alpine sh  

下面是你应该做的

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

这将确保您的容器不会死掉。现在,只要你需要在里面安装包,你只需使用 sh

进入容器
docker exec -it myalpine /bin/sh

如果您的容器由于某种原因挂掉了,您仍然可以使用

重新启动它
docker start myalpine

您应该使用 docker start,它允许您启动已停止的容器。如果您没有为容器命名,则需要使用 docker ps.

来获取它的 name/id

例如,

$docker ps
CONTAINER ID        IMAGE                        COMMAND
4c01db0b339c        alpine                       bash    

$docker start -i -a 4c01db0b339c   

拉取镜像

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 出来- 您可以 运行 它处于分离模式,它将保持 运行ning。

使用exec命令我们可以再次登录

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

验证它是 UP 并复制容器 ID 的前 2 -3 位数字

docker container ls

使用exec命令登录

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

您需要停止,否则它将保持 运行ning。

docker stop <CONTAINER ID>

运行 背景为高山

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

附加到高山

$ docker attach alpy