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

server/2024/11/27 21:06:50/

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的启动和停止操作,可以帮助开发者更加高效地管理和部署应用程序,提高开发效率和部署质量。


http://www.ppmy.cn/server/145433.html

相关文章

WPF 加载页面的三种方式(瞬时加载,延迟加载,异步行为)

在WPF中&#xff0c;瞬时加载、延迟加载和异步行为分别适用于不同的场景&#xff0c;它们各自的实现方式和用途如下&#xff1a; 1. 瞬时加载 定义&#xff1a; 在赋值或初始化时&#xff0c;视图和数据会立即加载&#xff0c;所有的逻辑在主线程上完成。视图在 UI 上的渲染…

学习Prompt Turning

传统的微调因为代价很高&#xff0c;而且一旦权重很大&#xff0c;这种fine 微微的意思是调不动模型的&#xff0c;所以需要这种提示词调 mindnlp直接有 peft config peft_config PromptTuningConfig(task_type“SEQ_CLS”, num_virtual_tokens10) 方便我们进行prompt tunin…

0基础学前端系列 -- 前端的存储方式

前端存储方式全解析&#xff1a;选择最适合你的解决方案 在现代Web开发中&#xff0c;存储用户数据和状态信息是至关重要的。随着应用程序的复杂性增加&#xff0c;开发者需要选择合适的存储机制来管理用户信息。本文将深入探讨前端的存储方式&#xff0c;包括 Session、Cooki…

【linux】shell脚本

文章目录 1. jar包启动脚本1.1 方式一1.2 方式二 2. 进程关闭脚本3. 操作mysql4. impala建表语句提取5. 监控磁盘存量6. 清日志脚本7. 替换tomcat的启动端口8. 将一行数据按照空格依次读取 1. jar包启动脚本 1.1 方式一 #!/bin/sh RESOURCE_NAME/usr/local/applications/scre…

Spring集成测试

Spring集成测试是一种用于测试Spring应用程序中各个组件之间的交互和集成的测试方法。它通常用于验证应用程序的整体行为&#xff0c;而不仅仅是单个组件的功能。以下是一些常见的Spring集成测试技术和工具&#xff1a; Spring TestContext Framework: Spring提供了一个强大的测…

box-im学习

box-im gitee代码 box-im 语雀文档 box-im 在线体验

2024年11月22日Github流行趋势

项目名称&#xff1a;twenty 项目维护者&#xff1a;charlesBochet, lucasbordeau, Weiko, FelixMalfait, bosiraphael 项目介绍&#xff1a;正在构建一个由社区驱动的现代Salesforce替代方案。 项目star数&#xff1a;22,938 项目fork数&#xff1a;2,413 项目名称&#xff1…

Pytorch使用手册-Tensors(专题二)

这段代码是对 PyTorch 中张量(Tensors)的详细介绍和操作演示。以下是逐步讲解: 1. 什么是张量 (Tensor) 张量是一种专门的数据结构,与 NumPy 的多维数组(ndarray)类似: 它可以在 GPU 或其他硬件加速器上运行。张量可以与 NumPy 共享内存,避免不必要的数据拷贝。它是为…