【云原生-Docker】使用 Docker Compose 管理容器

news2024/12/25 23:12:11

在这里插入图片描述
🍁博客主页:👉@不会压弯的小飞侠
欢迎关注:👉点赞👍收藏留言
系列专栏:👉Docker学习专栏
学习社区:👉不会压弯的小飞侠
知足上进,不负野心。
🔥欢迎大佬指正,一起学习!一起加油!

在这里插入图片描述

目录

  • 🍁安装 Docker Compose
  • 🍁Docker Compose 的基本使用逻辑
  • 🍁编写 Docker Compose 配置
  • 🍁启动和停止
  • 🍁容器命令


🍁安装 Docker Compose

Docker Compose 目前也是由 Docker 官方主要维护,但其却不属于 Docker Engine 的一部分,而是一个独立的软件。所以要在 Linux 中使用它,还必须要单独下载使用。
Docker Compose 是一个由 Python 编写的软件,在拥有 Python 运行环境的机器上,可以直接运行它,不需要其它的操作。可以通过下面的命令下载 Docker Compose 到应用执行目录,并附上运行权限,这样 Docker Compose 就可以在机器中使用了。

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$
$ sudo docker-compose version
docker-compose version 1.21.2, build a133471
docker-py version: 3.3.0
CPython version: 3.6.5
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

也能够通过 Python 的包管理工具 pip 来安装 Docker Compose。

$ sudo pip install docker-compose

🍁Docker Compose 的基本使用逻辑

如果将使用 Docker Compose 的步骤简化来说,可以分成三步。

  1. 如果需要的话,编写容器所需镜像的 Dockerfile;
  2. 编写用于配置容器的 docker-compose.yml;
  3. 使用 docker-compose 命令启动应用

🍁编写 Docker Compose 配置

配置文件是 Docker Compose 的核心部分,通过它去定义组成应用服务容器群的各项配置,而编写配置文件,则是使用 Docker Compose 过程中最核心的一个步骤。

Docker Compose 的配置文件是一个基于 YAML 格式的文件,YAML 是一种清晰、简单的标记语言。

与 Dockerfile 采用 Dockerfile 这个名字作为镜像构建定义的默认文件名一样,Docker Compose 的配置文件也有一个缺省的文件名,也就是 docker-compose.yml。

Docker Compose 配置文件:

version: '3'

services:

  webapp:
    build: ./image/webapp
    ports:
      - "5000:5000"
    volumes:
      - ./code:/code
      - logvolume:/var/log
    links:
      - mysql
      - redis

  redis:
    image: redis:3.2
  
  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=my-secret-pw

volumes:
  logvolume: {}

🍁启动和停止

最常使用的 Docker Compose 命令就是 docker-compose up 和 docker-compose down 了。

docker-compose up 命令类似于 Docker Engine 中的 docker run,它会根据 docker-compose.yml 中配置的内容,创建所有的容器、网络、数据卷等等内容,并将它们启动。与 docker run 一样,默认情况下 docker-compose up 会在“前台”运行,可以用 -d 选项使其“后台”运行。

$ sudo docker-compose up -d

docker-compose 命令默认会识别当前控制台所在目录内的 docker-compose.yml 文件,而会以这个目录的名字作为组装的应用项目的名称。如果需要改变它们,可以通过选项 -f 来修改识别的 Docker Compose 配置文件,通过 -p 选项来定义项目名

$ sudo docker-compose -f ./compose/docker-compose.yml -p myapp up -d

docker-compose up 相反,docker-compose down 命令用于停止所有的容器,并将它们删除,同时消除网络等配置内容,也就是几乎将这个 Docker Compose 项目的所有影响从 Docker 中清除

$ sudo docker-compose down

🍁容器命令

除了启动和停止命令外,Docker Compose 还提供了很多直接操作服务的命令。
Docker Engine 中,如果我们想要查看容器中主进程的输出内容,可以使用 docker logs 命令。而由于在 Docker Compose 下运行的服务,其命名都是由 Docker Compose 自动完成的,如果直接使用 docker logs 就需要先找到容器的名字,这显然有些麻烦了。可以直接使用 docker-compose logs 命令来完成这项工作。

$ sudo docker-compose logs nginx

过docker-compose create,docker-compose start 和 docker-compose stop 可以实现与 docker create,docker start 和 docker stop 相似的效果,只不过操作的对象由 Docker Engine 中的容器变为了 Docker Compose 中的服务。

$ sudo docker-compose create webapp
$ sudo docker-compose start webapp
$ sudo docker-compose stop webapp

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11832.html

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

相关文章

5种方法实现(a==1 a==2 a==3) == true

乍一看,这个咋能相等呢?深入思考就发现不仅可以相等,还有不少方法,下面就来讲讲这些方法都是如何实现的。 一、valueOf && toString 直接上代码: 比较运算分为2种, 一种为严格比较(),…

【设计模式】类图

本文主要介绍类图的概念、类之间的关系以及如何用类图表示类和类之间的关系 类图: 是一种静态结构图,是系统分析和设计阶段的重要产物。 类图画法: 1. 类的表示方式 类的表示中包含类名、属性 和 方法, 其中, 表示…

C++ Reference: Standard C++ Library reference: Containers: deque: deque: empty

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/empty/ 公有成员函数 <deque> std::deque::empty C98 bool empty() const; C11 bool empty() const noexcept;测试容器是否为空 返回deque容器是否为空&#xff08;即其size是否为0&#xff09;…

大一Web课程设计:企业网站——HTML+CSS+JavaScript电子购物商城(37页面)

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

VIAVI唯亚威FI-10/-11 光纤识别仪

FI-10 和 FI-11 手持式光纤识别仪稳固可靠&#xff0c;易于安装和维护&#xff0c;能够检测通过单模光纤传输的光信号&#xff0c;从而识别出光纤。它们采用局部检测技术&#xff08;非破坏性宏弯检测&#xff09;&#xff0c;从而不再需要在接合点处打开光纤进行识别&#xff…

【好文鉴赏】优秀的后端应该有哪些开发习惯

关键词&#xff1a;[后端] [编程习惯] [代码风格] 原文链接&#xff1a; https://juejin.cn/post/7072252275002966030https://www.51cto.com/article/721104.html 这里涉及到的主要是 Java 语言&#xff0c;当然也有通用的一些习惯&#xff1b; 拆分合理的目录结构 受传统的…

Spring Cloud网关路由谓词

目录 一、前言 1、注意事项 2、词汇表 3、工作原理 二、配置路由谓词工厂 1、快捷方式 1.1、快捷方式配置 1.2、完全展开的参数 2、路由谓词工厂 2.1、路由谓词工厂之后 2.2、路线谓词工厂之前 2.3、路由谓词工厂之间 3、Cookie路线谓词工厂 4、标头路由谓词工厂 …

Rust机器学习之Polars

Rust机器学习之Polars 本文将带领大家学习Polars的基础用法&#xff0c;通过数据加载→\rarr→数据探索→\rarr→数据清洗→\rarr→数据操作一整个完整数据处理闭环&#xff0c;让大家学会如何用Polars代替Pandas进行数据处理。 本文是“Rust替代Python进行机器学习”系列文…

Golang入门笔记(5)—— 流程控制之switch分支

switch 有切换&#xff0c;开关的意思&#xff0c;我想这也许就是代码上的意义&#xff0c;通过表达式计算出一个值&#xff0c;然后进行状态的匹配和然后进行流程上的切换。 基本语法&#xff1a; switch 表达式 {case 值a1,值a2, ...语句块case 值b1&#xff0c;值b2, ...语…

[附源码]计算机毕业设计JAVA高校资源共享平台

[附源码]计算机毕业设计JAVA高校资源共享平台 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

IOT云平台 simple(4)springboot netty实现简单的mqtt broker

常见的开源mqttBroker很多&#xff0c;如&#xff1a; Mosquitto、emqx&#xff1b; 这里简单的介绍了mqtt&#xff0c;然后利用springboot netty实现了简单的mqtt Broker。 mqtt Broker&#xff1a;springboot netty实现&#xff1b; mqtt client&#xff1a;MQTT.fx工具软件…

Java Tomcat内存马——filter内存马

目录 前言&#xff1a; &#xff08;一) 内存马简介 0X01 原理 0X02 内存马类型 2.1 servlet-api类 2.2 spring类 2.3 Java Instrumentation类 &#xff08;二&#xff09; filter 内存马 &#xff08;三&#xff09;Tomcat Filter 流程分析 0x01 项目搭建 0x02 在访…

【Spring】——5、@Lazy懒加载

&#x1f4eb;作者简介&#xff1a;zhz小白 公众号&#xff1a;小白的Java进阶之路 专业技能&#xff1a; 1、Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理 2、熟悉Java基础&#xff0c;并精通多线程的开发&#xff0c;熟悉JVM原理&#xff0c;具备⼀定的线…

【BOOST C++ 12 函数式编程】(5) Boost.Lambda

一、说明Boost.Lambda 在 C11 之前&#xff0c;您需要使用像 Boost.Lambda 这样的库来利用 lambda 函数。从 C11 开始&#xff0c;这个库可以被视为已弃用&#xff0c;因为 lambda 函数现在是编程语言的一部分。如果您在不支持 C11 的开发环境中工作&#xff0c;您应该在转向 B…

大空间享大智慧 奇瑞新能源奇瑞大蚂蚁

在亲子消费市场上家庭消费已经成为了主力军。亲子消费的重心已经从以饮食、服装为主向教育、游乐等方向多元化发展。而在出行方面汽车的品质与驾乘感受也是如今消费者选择的主要需求。所以实惠、安全、环保的新能源大空间SUV成为了越来越多二胎、三胎家庭的最终选择。奇瑞新能源…

线程池使用

转载&#xff1a;线程池详解&#xff08;通俗易懂超级好&#xff09;_拉格朗日(Lagrange)的博客-CSDN博客_线程池 目录 基本概念 什么是线程池 线程池优点 线程池源码 ThreadPoolExecutor 参数解释 具体使用 线程池的工作原理 线程池的参数 任务队列&#xff08;w…

元数据管理-解决方案调研一:元数据概述

一、元数据概述 1.1、定义 元数据定义&#xff1a;描述数据的数据&#xff0c;对数据及信息资源的描述性信息。小编认为元数据不仅仅是关于数据的数据&#xff0c;它还是一种上下文&#xff0c;赋予信息更加丰富的身份。 以图片为例&#xff0c;其图片本身是一种数据&#xf…

操作系统的内存究竟是怎么一回事?

摘要&#xff1a;操作系统的内存究竟是怎么一回事&#xff1f;带你完整复习一遍《操作系统》一书中有关内存的所有知识点本文分享自华为云社区《操作系统的内存究竟是怎么一回事&#xff1f;带你完整复习一遍《操作系统》一书中有关内存的所有知识点》&#xff0c;作者&#xf…

【图神经网络】使用DGL框架实现简单图分类任务

使用DGL框架实现简单图分类任务简单图分类任务实现过程打包一个图的小批量定义图分类器图卷积读出和分类准备和训练核心代码参考资料图分类&#xff08;预测图的标签&#xff09;是图结构数据里一类重要的问题。它的应用广泛&#xff0c;可见于生物信息学、化学信息学、社交网络…

aws xray ec2环境搭建和基础用法

参考资料 https://docs.amazonaws.cn/en_us/xray/latest/devguide/xray-daemon.html https://docs.aws.amazon.com/xray-sdk-for-nodejs/latest/reference/ https://github.com/aws/aws-xray-sdk-node https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference/ba…