探索Docker 容器

探索Docker 容器

Docker 容器(Container)命令可以帮助你创建、启动、停止、查看和删除容器。让我们从一些常见的容器命令开始。

启动一个容器

要基于某个镜像启动一个容器,可以使用 docker run 命令。没有nginx镜像就拉取一个。例如:

docker run -d -p 8089:80 nginx

输出:

root@debian:/home/x# docker run -d -p 8089:80 nginx
f224e28c9211ac23bd5269423d7e1db56812586288d44b32d80e5ab5dbd8f42a

这个命令会从 nginx 镜像启动一个新的容器,并将主机的 8089 端口映射到容器的 80 端口。-d 参数表示容器在后台运行。启动后,你可以通过访问 http://localhost:8089 来查看 nginx 容器的服务。

查看正在运行的容器

要查看当前所有正在运行的容器,可以使用以下命令:

docker ps

输出:

root@debian:/home/x# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
f224e28c9211   nginx     "/docker-entrypoint.…"   40 seconds ago   Up 39 seconds   0.0.0.0:8089->80/tcp, :::8089->80/tcp   hopeful_cori

这个命令会列出所有正在运行的容器,包括容器 ID、使用的镜像、创建时间、状态、暴露的端口以及容器名称等信息。如果你想查看所有的容器(包括停止的),可以加上 -a 参数:

docker ps -a

停止一个运行中的容器

如果你想停止某个正在运行的容器,可以使用 docker stop 命令,后面跟上容器的 ID 或名称。例如:

docker stop 容器ID或名称

上面运行的容器ID是f224e28c9211,这里就关闭这个ID的容器。

docker stop f224e28c9211

输出:

root@debian:~/home/x~# docker stop f224e28c9211
f224e28c9211

再次输入docker ps -a检查一下,可以看到刚刚的容器f224e28c9211已经停止,STATUS状态是Exit(0)

root@debian:~# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                          PORTS     NAMES
f224e28c9211   nginx         "/docker-entrypoint.…"   3 minutes ago    Exited (0) About a minute ago             hopeful_cori
94a60b0d3c48   hello-world   "/hello"                 51 minutes ago   Exited (0) 50 minutes ago                 competent_haslett

启动一个已停止的容器

要重新启动一个已停止的容器,可以使用 docker start 命令。例如:
docker start 容器ID或名称

这个命令会将指定的容器从停止状态重新启动,而不需要重新创建容器。如启动刚刚停止的容器。

docker start f224e28c9211

输出:

root@debian:~# docker start f224e28c9211
f224e28c9211

再次输入docker ps -a检查一下,可以看到刚刚的容器f224e28c9211已经启动,STATUS状态是Up 56 Seconds.(这个56是启动后运行了56秒)

root@debian:~# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                      PORTS                                   NAMES
f224e28c9211   nginx         "/docker-entrypoint.…"   6 minutes ago    Up 56 seconds               0.0.0.0:8089->80/tcp, :::8089->80/tcp   hopeful_cori
94a60b0d3c48   hello-world   "/hello"                 54 minutes ago   Exited (0) 54 minutes ago

进入一个正在运行的容器

有时,你可能需要进入一个正在运行的容器,检查其内部情况或执行一些命令。可以使用 docker exec 命令。例如:

docker exec -it 容器ID或名称 /bin/bash

进入刚刚运行的容器

docker exec -it f224e28c9211 /bin/bash

输出:

root@debian:~# docker exec -it f224e28c9211 /bin/bash
root@f224e28c9211:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@f224e28c9211:/#

这个命令会启动一个交互式的 shell(通常是 bash),让你直接进入容器的命令行环境。
除此之外,我们还可以在run的时候加-it进入容器,就像这样

root@debian:~# docker run  -it nginx /bin/bash
root@a7735690088f:/#

删除一个容器

如果你不再需要某个容器,可以使用 docker rm 命令将其删除。例如:

docker rm 容器ID或名称

在删除之前,确保容器已经停止。如果容器还在运行,可以先使用 docker stop 停止它,或者直接使用 -f 参数强制删除:

docker rm -f 容器ID或名称

删除刚刚运行的容器

docker rm -f f224e28c9211

输出:

root@debian:~# docker rm -f f224e28c9211
f224e28c9211

Leave a Reply

Your email address will not be published. Required fields are marked *