4.1.3 连接到运行中的容器
执行 docker container exec
命令,可以将Shell连接到一个运行中的容器终端。因为之前示例中的容器仍在运行,所以下面的示例会创建到该容器的新连接。
Linux示例如下。
$ docker container exec -it vigilant_borg bash
root@e2b69eeb55cb:/#
示例中的容器名为“vigilant_brog”。读者环境中的容器名称会不同,所以请记得将“vigilant_brog”替换为自己Docker主机上运行中的容器名称或者ID。
Windows示例如下。
> docker container exec -it pensive_hamilton pwsh.exe
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.
PS C:\>
本例中使用的容器为“pensive_hamilton”。同样,读者环境中的容器名称会不同,所以请记得将“pensive_hamilton”替换为自己Docker主机上运行中的容器名称或者ID。
注意,Shell提示符又发生了变化。此时已登录到了容器内部。
docker container exec
命令的格式是 docker container exec <options>
<container-name or container-id>
<command/app>
。在示例中,将本地Shell连接到容器是通过 -it
参数实现的。本例中使用名称引用容器,并且告诉Docker运行Bash Shell(在Windows示例中是PowerShell)。使用十六进制ID的方式也可以很容易地引用具体容器。
再次使用 Ctrl-PQ组合键
退出容器。
Shell提示符应当退回到Docker主机中。
再次运行 docker container ls
命令来确认容器仍处于运行状态。
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
e2b69eeb55cb ubuntu:latest "/bin/bash" 9 mins Up 9 min vigilant_borg
通过 docker container stop
和 docker container rm
命令来停止并杀死容器。切记需要将示例中的名称/ID替换为读者自己的容器对应的名称和ID。
$ docker container stop vigilant_borg
vigilant_borg
$ docker container rm vigilant_borg
vigilant_borg
通过运行 docker container ls
命令,并指定 -a
参数来确认容器已经被成功删除。添加 -a
的作用是让Docker列出所有容器,甚至包括那些处于停止状态的。
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES