Docker 启动和停止的精准掌舵:操控指南

Docker是一个开源的应用容器引擎,基于Go语言开发,能够让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker容器相互之间不会有任何接口,容器的开销性能极低。本文将详细介绍Docker的启动和停止操作,帮助用户精准掌舵Docker容器的生命周期。

一、Docker安装与基础命令

在启动Docker之前,需要确保已经安装了Docker。可以通过以下命令检查Docker是否已经安装:

docker --version

如果已经安装了Docker,会返回Docker的版本号;如果没有安装,则需要先进行安装。在不同的操作系统上,安装Docker的方法可能略有不同。这里以在Ubuntu操作系统上安装Docker为例:

  1. 更新软件包:
sudo apt-get update
  1. 安装Docker:
sudo apt-get install docker-ce
  1. 验证Docker是否安装成功:
sudo docker run hello-world

如果能成功运行hello-world容器,则说明Docker安装成功。

Docker的基础命令包括:

  • docker --version:查看Docker版本信息。
  • docker info:查看Docker系统、镜像、容器数等信息。
  • docker --help:查看Docker帮助手册。
二、Docker镜像管理

Docker镜像是创建容器的基础。在使用Docker启动服务之前,首先需要有一个Docker镜像。

  1. 查看镜像
docker images

该命令会列出本地存储的所有Docker镜像,包括镜像名称、标签、镜像ID、创建日期和大小等信息。

  1. 搜索镜像
docker search <镜像名称>

例如,搜索tomcat镜像:

docker search tomcat

该命令会列出Docker Hub上所有相关的镜像,包括仓库名称、描述、用户评价、是否官方和是否自动构建等信息。

  1. 拉取镜像
docker pull <镜像名称>:<标签>

如果不指定标签,则默认拉取最新版本。例如,拉取tomcat镜像:

docker pull tomcat

拉取镜像后,可以通过docker images命令查看已下载的镜像。

  1. 删除镜像
docker rmi <镜像ID>

删除多个镜像时,可以使用空格分隔多个镜像ID。强制删除镜像时,可以添加-f参数。删除所有镜像时,可以使用以下命令:

docker rmi -f $(docker images -qa)
三、Docker容器管理

Docker容器是Docker镜像的运行实例。通过管理容器,可以启动、停止、删除和进入容器内部等操作。

  1. 查看容器
  • 查看正在运行的容器:
docker ps
  • 查看所有容器(包括停止的容器):
docker ps -a
  • 查看最后一次运行的容器:
docker ps -l
  • 查看停止的容器:
docker ps -f status=exited
  1. 创建和启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARGS...]

其中,OPTIONS是可选项,可以指定容器的一些属性,如端口映射、容器名称等;IMAGE是必选项,指定要启动的镜像;COMMAND是可选项,指定容器启动后要执行的命令;ARGS是可选项,指定COMMAND命令的参数。

常用的OPTIONS参数包括:

  • -i:表示运行容器。
  • -t:表示容器启动后会进入其命令行。
  • -d:表示在后台运行容器。
  • -p:表示端口映射。
  • --name:为容器指定一个名称。
  • -v:表示目录映射关系。

例如,启动一个nginx容器:

docker run -d -p 8080:80 --name mynginx nginx

该命令会在后台启动一个nginx容器,将主机的8080端口映射到容器的80端口,并将容器命名为mynginx。

  1. 进入容器
docker exec -it <容器名称或ID> <命令>

例如,进入mynginx容器并执行ls命令:

docker exec -it mynginx ls
  1. 停止容器
docker stop <容器名称或ID>

该命令会向容器发送一个SIGTERM信号,请求其优雅地停止。如果容器在指定的超时时间内(默认为10秒)仍未退出,Docker将发送SIGKILL信号强制终止容器。

  1. 启动容器
docker start <容器名称或ID>

该命令会启动一个已停止的Docker容器。

  1. 重启容器
docker restart <容器名称或ID>

该命令会先停止容器(如果正在运行),然后重新启动容器。

  1. 删除容器
docker rm <容器名称或ID>

删除多个容器时,可以使用空格分隔多个容器名称或ID。强制删除容器时,可以添加-f参数。删除所有容器(包括停止的容器)时,可以使用以下命令:

docker rm -f $(docker ps -aq)
四、Docker Compose管理

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过Docker Compose,可以使用YAML文件来配置应用程序所需的所有服务,并使用单个命令创建和启动所有服务。

  1. 停止所有Compose服务
docker-compose down

该命令会停止并删除由Compose管理的所有容器、网络和卷。

  1. 仅停止容器
docker-compose stop

该命令会停止服务容器,但不会删除它们或相关的网络和卷。

  1. 删除所有Compose容器、网络和卷
docker-compose down -v

-v标志会删除与服务关联的所有卷,释放更多的存储空间。

五、Docker资源清理

除了删除容器外,还可以使用Docker的清理命令来释放其他未使用的资源,如镜像、网络和卷。

  1. 删除未使用的镜像
docker image prune -a

-a标志会删除所有未使用的镜像,而不仅仅是dangling镜像。

  1. 删除未使用的网络
docker network prune
  1. 删除未使用的卷
docker volume prune
  1. 一次性清理所有未使用的资源
docker system prune -a --volumes

该命令会删除所有未使用的容器、网络、镜像和卷,--volumes选项会包括未使用的卷。

六、总结

Docker的启动和停止操作是Docker管理的核心部分。通过本文的介绍,读者可以了解Docker的安装、镜像管理、容器管理、Docker Compose管理和资源清理等方面的知识。在实际应用中,需要根据具体需求选择合适的命令和参数来管理Docker容器,确保容器的正常启动和停止,避免数据丢失或其他问题的发生。

Docker的灵活性和可移植性使其成为现代应用程序开发和部署的重要工具。掌握Docker的启动和停止操作,可以帮助开发者更加高效地管理和部署应用程序,提高开发效率和部署质量。

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐