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

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.mzph.cn/bicheng/62207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle Universal Unique Identifier (UUID)

本文介绍Oracle生成全局唯一ID的函数SYS_GUID&#xff0c;后续会对SYS_GUID和Sequence两种方法进行比较。 SYS_GUID 函数生成并返回一个由 16 个字节组成的全局唯一标识符&#xff08;RAW 值&#xff09;。在大多数平台上&#xff0c;生成的标识符由主机标识符、调用该函数的进…

微信小程序页面配置详解:从入门到精通

微信小程序页面配置详解:从入门到精通 引言 随着移动互联网的飞速发展,微信小程序作为一种新兴的应用形式,因其便捷性和丰富的功能而受到广泛欢迎。在小程序的开发过程中,页面配置是至关重要的一环。本文将深入探讨微信小程序的页面配置,帮助开发者从基础到高级逐步掌握…

d3-contour 生成等高线图

D3.js 是一个强大的 JavaScript 库&#xff0c;用于创建动态、交互式数据可视化。d3-contour 是 D3.js 的一个扩展模块&#xff0c;用于生成等高线图&#xff08;contour plots&#xff09;。 属性和方法 属性 x: 一个函数&#xff0c;用于从数据点中提取 x 坐标。y: 一个函…

Vue 中 data 属性为函数的深度剖析:原理、区别与实践

在 Vue.js 中,data 属性通常是一个 函数 而不是一个对象,这背后有一系列设计上的原因和原理,尤其是与 Vue 的组件系统、实例化机制、以及响应式数据的管理有关。下面我将详细解答这个问题,并结合实际项目示例和代码分析,进行全面讲解。 1. Vue 中 data 为什么是一个函数而…

钉钉与企业微信机器人:助力网站定时任务高效实现

钉钉、企业微信机器人在网站定时任务中的应用&#xff0c;主要体现在自动化通知、提醒以及数据处理等方面。 以下是一些具体的应用场景&#xff1a; 1. 自动化通知 项目进度提醒&#xff1a;在蒙特网站所负责的软件开发或网站建设项目中&#xff0c;可以利用机器人设置定时任…

# [Unity] 【游戏开发】Unity开发基础2-Unity脚本编程基础详解

Unity脚本编程是创建互动式游戏体验的核心技能之一。本文将详细讲解Unity脚本编程的基础知识,包括变量和数据类型、程序逻辑、方法等方面,并通过实例展示如何使用这些基本知识完成简单功能的实现。 1. 新建Unity脚本的基本结构 当在Unity中创建一个脚本时,Unity会生成如下基…

Windows系统下安装Triton 3.0.0预编译Triton 2.1.0

Triton是一个用于编写高效自定义深度学习原语的语言和编译器。它旨在提供一个开源环境&#xff0c;使得编写代码的速度比CUDA更快&#xff0c;同时比其他现有的DSLs&#xff08;领域特定语言&#xff09;更灵活。 在开始安装之前&#xff0c;请确保您的系统满足以下要求&#x…

Docker 部署 MongoDB

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f343; vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode&#x1f4ab; Gitee &#x1f…

uni-app初学笔记:文件路径与作用

components:可复用的组件pages:页面&#xff08;可见/不可见&#xff09;static:静态资源&#xff0c;存放图片视频等 &#xff08;相当于vue项目的 assets&#xff09;mainjs:Vue初始化入口文件App.vue:应用配置&#xff0c;用来配置App全局样式以及监听pages.json :配置页面路…

springboot+redis+lua实现分布式锁

1 分布式锁 Java锁能保证一个JVM进程里多个线程交替使用资源。而分布式锁保证多个JVM进程有序交替使用资源&#xff0c;保证数据的完整性和一致性。 分布式锁要求 互斥。一个资源在某个时刻只能被一个线程访问。避免死锁。避免某个线程异常情况不释放资源&#xff0c;造成死锁…

什么是事务?事务有哪些特性?

在数据库管理中&#xff0c;事务是一个核心概念&#xff0c;它确保了数据操作的完整性和一致性。本文将探讨事务的定义及其四大特性。 一、事务的定义 事务是数据库操作的最小工作单元&#xff0c;是作为单个逻辑工作单元执行的一系列操作。这些操作作为一个整体一起向系统提…

logstash 解析数组格式json数据:split, json

1&#xff0c;需求说明 原始数据格式&#xff1a; 1条 &#xff08;2*2&#xff09;》4个指标数据 [{"app":"aa","url":"www.1.com","metrics":[{"name":"cpu","value":11},{"name&quo…

鸿蒙MVVM模式介绍与使用

文章目录 鸿蒙MVVM模式介绍与使用背景MVVM模式介绍相关装饰器介绍State状态变量Prop、Link的作用 MVVM架构模式的实现以及相关装饰器的使用具体实现效果 总结 鸿蒙MVVM模式介绍与使用 背景 最近在学习鸿蒙开发,想到了以前写安卓移动端应用时经常会用到的MVVM架构模式,就想着能…

Vue 3 学习文档(一)

最近打算做一个项目&#xff0c;涉及到一些前端的知识&#xff0c;因上一次接触前端已经是三四年前了&#xff0c;所以捡一些简单的功能做一下复习。 响应式函数&#xff1a;reactive 和 ref属性绑定&#xff1a;v-bind 和简写语法事件监听&#xff1a;v-on 和简写语法 双向绑…

解决SpringBoot连接Websocket报:请求路径 404 No static resource websocket.

问题发现 最近在工作中用到了WebSocket进行前后端的消息通信&#xff0c;后端代码编写完后&#xff0c;测试一下是否连接成功&#xff0c;发现报No static resource websocket.&#xff0c;看这个错貌似将接口变成了静态资源来访问了&#xff0c;第一时间觉得是端点没有注册成…

【RISC-V CPU 专栏 -- 香山处理器介绍】

文章目录 RISC-V 香山处理器介绍雁栖湖处理器南湖处理器RISC-V 香山处理器介绍 相信很多小伙伴对于“香山”都不陌生,它是一款开源RISC-V处理器核,香山的每一代架构,都是采用了湖的名字,第一代架构被命名为雁栖湖,第二代架构则叫做 “南湖”。 “雁栖湖”这款处理器的 R…

麦肯锡报告 | 科技落地的真谛:超越技术本身的价值创造

科技创新正在以惊人的速度改变企业运作和客户体验&#xff0c;但实现其潜力的关键在于正确的策略、流程、文化和人才。麦肯锡强调了一个理念&#xff1a;Never just tech&#xff08;不仅仅是技术&#xff09;。这表明&#xff0c;成功的数字化转型不仅依赖于技术&#xff0c;还…

网络安全原理与技术思考题/简答题

作业1&#xff08;第1章、第2章、第8章&#xff09; 1. 网络安全的基本属性有哪些&#xff1f;简单解释每个基本属性的含义。网络安全的扩展属性包括哪些&#xff1f; 基本属性&#xff1a; 1.机密性(Confidentiality)&#xff1a; 含义&#xff1a;确保信息不被未授权的用户…

小米note pro一代(leo)线刷、twrp、magisk、TODO: android源码编译

本文主要说android5 整体思路 android 5.1 twrp magisk Zygisk(Riru) Dreamland(xposed) Riru不支持android5.1, 因此只能选择Zygisk : 如果你正在使用 Android 5&#xff0c;你必须使用 Zygisk 因为 Riru 并不支持 Android 5. 基于magisk之上的xposed 其中提到的 作者…

英语知识网站:Spring Boot技术构建

6系统测试 6.1概念和意义 测试的定义&#xff1a;程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为&#xff1a; 目的&#xff1a;发现程序的错误&#xff1b; 任务&#xff1a;通过在计算机上执行程序&#xff0c;暴露程序中潜在的错误。 另一个…