您可以启动、停止和重新启动 Docker 容器。当我们停止一个容器时,它并没有被移除,而是状态变成了stopped,容器内的进程也停止了。当我们docker ps在上一个模块中运行命令时,默认输出仅显示正在运行的容器。当我们通过--all或-a简称时,我们会看到机器上的所有容器,而不管它们的启动或停止状态。
$ docker ps -a
您现在应该看到列出了几个容器。这些是我们启动和停止但尚未删除的容器。
让我们重新启动刚刚停止的容器。找到我们刚刚停止的容器名称,并使用restart命令替换下面的容器名称。
$ docker restart trusting_beaver
现在,使用docker ps命令再次列出所有容器。
$ docker ps -a
请注意,我们刚刚重新启动的容器已在分离模式下启动并暴露了端口 8080。另外,观察容器的状态是“Up X seconds”。当您重新启动容器时,它会以与最初启动时相同的标志或命令启动。
现在,让我们停止并移除我们所有的容器,看看如何修复随机命名问题。找到您正在运行的容器的名称,并将以下命令中的名称替换为您系统上的容器名称。
$ docker stop trusting_beaver
trusting_beaver
现在我们的容器已停止,让我们将其删除。当您移除容器时,容器内的进程将停止并且容器的元数据将被移除。
要删除容器,只需运行docker rm传递容器名称的命令即可。您可以使用单个命令将多个容器名称传递给命令。同样,将以下命令中的容器名称替换为您系统中的容器名称。
$ docker rm trusting_beaver modest_khayyam lucid_greider
trusting_beaver
modest_khayyam
lucid_greider
docker ps --all再次运行该命令以查看所有容器都已删除。
现在,让我们解决随机命名问题。标准做法是为您的容器命名,原因很简单,这样更容易识别容器中运行的内容以及它关联的应用程序或服务。
要命名容器,我们只需要将--name标志传递给docker run命令。
$ docker run --rm -d -p 8080:8080 --name springboot-server java-docker
2e907c68d1c98be37d2b2c2ac6b16f353c85b3757e549254de68746a94a8a8d3
这样更好!我们现在可以根据名称轻松识别我们的容器。