Docker 启动和停止的精准掌舵:操控指南
Docker是一个开源的应用容器引擎,基于Go语言开发,能够让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker容器相互之间不会有任何接口,容器的开销性能极低。本文将详细介绍Docker的启动和停止操作,帮助用户精准掌舵Docker容器的生命周期。
一、Docker安装与基础命令
在启动Docker之前,需要确保已经安装了Docker。可以通过以下命令检查Docker是否已经安装:
docker --version
如果已经安装了Docker,会返回Docker的版本号;如果没有安装,则需要先进行安装。在不同的操作系统上,安装Docker的方法可能略有不同。这里以在Ubuntu操作系统上安装Docker为例:
- 更新软件包:
sudo apt-get update
- 安装Docker:
sudo apt-get install docker-ce
- 验证Docker是否安装成功:
sudo docker run hello-world
如果能成功运行hello-world容器,则说明Docker安装成功。
Docker的基础命令包括:
docker --version
:查看Docker版本信息。docker info
:查看Docker系统、镜像、容器数等信息。docker --help
:查看Docker帮助手册。
二、Docker镜像管理
Docker镜像是创建容器的基础。在使用Docker启动服务之前,首先需要有一个Docker镜像。
- 查看镜像:
docker images
该命令会列出本地存储的所有Docker镜像,包括镜像名称、标签、镜像ID、创建日期和大小等信息。
- 搜索镜像:
docker search <镜像名称>
例如,搜索tomcat镜像:
docker search tomcat
该命令会列出Docker Hub上所有相关的镜像,包括仓库名称、描述、用户评价、是否官方和是否自动构建等信息。
- 拉取镜像:
docker pull <镜像名称>:<标签>
如果不指定标签,则默认拉取最新版本。例如,拉取tomcat镜像:
docker pull tomcat
拉取镜像后,可以通过docker images
命令查看已下载的镜像。
- 删除镜像:
docker rmi <镜像ID>
删除多个镜像时,可以使用空格分隔多个镜像ID。强制删除镜像时,可以添加-f
参数。删除所有镜像时,可以使用以下命令:
docker rmi -f $(docker images -qa)
三、Docker容器管理
Docker容器是Docker镜像的运行实例。通过管理容器,可以启动、停止、删除和进入容器内部等操作。
- 查看容器:
- 查看正在运行的容器:
docker ps
- 查看所有容器(包括停止的容器):
docker ps -a
- 查看最后一次运行的容器:
docker ps -l
- 查看停止的容器:
docker ps -f status=exited
- 创建和启动容器:
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。
- 进入容器:
docker exec -it <容器名称或ID> <命令>
例如,进入mynginx容器并执行ls命令:
docker exec -it mynginx ls
- 停止容器:
docker stop <容器名称或ID>
该命令会向容器发送一个SIGTERM信号,请求其优雅地停止。如果容器在指定的超时时间内(默认为10秒)仍未退出,Docker将发送SIGKILL信号强制终止容器。
- 启动容器:
docker start <容器名称或ID>
该命令会启动一个已停止的Docker容器。
- 重启容器:
docker restart <容器名称或ID>
该命令会先停止容器(如果正在运行),然后重新启动容器。
- 删除容器:
docker rm <容器名称或ID>
删除多个容器时,可以使用空格分隔多个容器名称或ID。强制删除容器时,可以添加-f
参数。删除所有容器(包括停止的容器)时,可以使用以下命令:
docker rm -f $(docker ps -aq)
四、Docker Compose管理
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过Docker Compose,可以使用YAML文件来配置应用程序所需的所有服务,并使用单个命令创建和启动所有服务。
- 停止所有Compose服务:
docker-compose down
该命令会停止并删除由Compose管理的所有容器、网络和卷。
- 仅停止容器:
docker-compose stop
该命令会停止服务容器,但不会删除它们或相关的网络和卷。
- 删除所有Compose容器、网络和卷:
docker-compose down -v
-v
标志会删除与服务关联的所有卷,释放更多的存储空间。
五、Docker资源清理
除了删除容器外,还可以使用Docker的清理命令来释放其他未使用的资源,如镜像、网络和卷。
- 删除未使用的镜像:
docker image prune -a
-a
标志会删除所有未使用的镜像,而不仅仅是dangling镜像。
- 删除未使用的网络:
docker network prune
- 删除未使用的卷:
docker volume prune
- 一次性清理所有未使用的资源:
docker system prune -a --volumes
该命令会删除所有未使用的容器、网络、镜像和卷,--volumes
选项会包括未使用的卷。
六、总结
Docker的启动和停止操作是Docker管理的核心部分。通过本文的介绍,读者可以了解Docker的安装、镜像管理、容器管理、Docker Compose管理和资源清理等方面的知识。在实际应用中,需要根据具体需求选择合适的命令和参数来管理Docker容器,确保容器的正常启动和停止,避免数据丢失或其他问题的发生。
Docker的灵活性和可移植性使其成为现代应用程序开发和部署的重要工具。掌握Docker的启动和停止操作,可以帮助开发者更加高效地管理和部署应用程序,提高开发效率和部署质量。