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

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

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

一、Docker安装与基础命令

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

bash 复制代码
docker --version

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

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

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

Docker的基础命令包括:

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

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

  1. 查看镜像
bash 复制代码
docker images

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

  1. 搜索镜像
bash 复制代码
docker search <镜像名称>

例如,搜索tomcat镜像:

bash 复制代码
docker search tomcat

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

  1. 拉取镜像
bash 复制代码
docker pull <镜像名称>:<标签>

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

bash 复制代码
docker pull tomcat

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

  1. 删除镜像
bash 复制代码
docker rmi <镜像ID>

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

bash 复制代码
docker rmi -f $(docker images -qa)
三、Docker容器管理

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

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

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

常用的OPTIONS参数包括:

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

例如,启动一个nginx容器:

bash 复制代码
docker run -d -p 8080:80 --name mynginx nginx

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

  1. 进入容器
bash 复制代码
docker exec -it <容器名称或ID> <命令>

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

bash 复制代码
docker exec -it mynginx ls
  1. 停止容器
bash 复制代码
docker stop <容器名称或ID>

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

  1. 启动容器
bash 复制代码
docker start <容器名称或ID>

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

  1. 重启容器
bash 复制代码
docker restart <容器名称或ID>

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

  1. 删除容器
bash 复制代码
docker rm <容器名称或ID>

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

bash 复制代码
docker rm -f $(docker ps -aq)
四、Docker Compose管理

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

  1. 停止所有Compose服务
bash 复制代码
docker-compose down

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

  1. 仅停止容器
bash 复制代码
docker-compose stop

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

  1. 删除所有Compose容器、网络和卷
bash 复制代码
docker-compose down -v

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

五、Docker资源清理

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

  1. 删除未使用的镜像
bash 复制代码
docker image prune -a

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

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

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

六、总结

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

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

相关推荐
qq_364371728 小时前
基于 Docker 容器化环境配置
运维·docker·容器
GentleDevin9 小时前
Docker 运维常用命令大全
docker·容器·运维命令
运维全栈笔记9 小时前
基于Docker的MinIO单机部署与功能测试指南
运维·docker·容器
心机之蛙qee10 小时前
docker的安装(RHEL9)
运维·docker·容器
炸炸鱼.10 小时前
Docker 高级管理 —— 容器通信技术与数据持久化
docker
乐hh11 小时前
DM8配置SSL
数据库·docker·ssl
Cat_Rocky11 小时前
kubernetes ingress粗浅学习
学习·容器·kubernetes
极客先躯11 小时前
高级java每日一道面试题-2025年12月05日-实战篇[Dockerj]-Docker 安装后的默认存储路径是什么?如何修改?
java·docker·默认存储路径在不同系统上的区别·linux overlay2·修改存储路径的理论方法·修改流程中的关键理论点
凤舞飘伶11 小时前
windows安装docker-desk
windows·docker·容器
运维全栈笔记11 小时前
Docker一键部署Immich:自建私有云相册,照片视频备份无忧
linux·服务器·网络·docker·容器