当前位置: 首页 > news >正文

docker compse简介与安装

目录

1. Docker Compose 简介

2. Docker Compose 安装

2.1 在 Ubuntu 上安装 Docker Compose

2.1.1 通过 apt 安装

2.1.2 使用官方脚本安装最新版本

2.2 在 CentOS 上安装 Docker Compose

2.2.2 使用官方脚本安装最新版本

2.2.3 使用 pip 安装

2.3 在 openEuler 上安装 Docker Compose

2.3.1 使用官方脚本安装最新版本

2.2.2 检查并通过 dnf 安装 Docker Compose

2.3.3 使用 pip 安装

3. Docker Compose 测试示例

3.1 目录结构:

3.2 docker-compose.yml 文件内容:

3.3 html/index.html 内容示例:

3.4 启动服务

3.5 访问 Web 服务

3.6 看能出现问题

3.6.1 解决端口冲突

3.6.2 停止并移除服务

4.docker compose常用命令

4.1 启动和停止服务

4.1.1 启动服务

4.1.3 停止并移除容器、网络、卷

4.2 构建和管理服务

4.2.1 构建或重建服务

4.2.2 拉取服务的镜像

4.2.3 重新启动服务

4.3  监控和调试

4.3.1 查看服务的日志

4.3.2 列出当前项目的所有容器

4.3.3 查看服务的状态

4.4 扩展和缩放服务

4.4.1 扩展服务

4.5 运行一次性命令和任务

4.5.1 在服务容器中运行命令

4.5.2 运行一次性任务

4.6 配置管理

4.6.1 查看配置

4.6.2 列出定义的服务


Docker Compose 需要在已经安装了 Docker 的基础上进行安装

Docker安装参考:Ubuntu、centos、openEuler安装docker-CSDN博客

Docker与compose的区别:Docker 和 Docker Compose 的区别对比-CSDN博客

1. Docker Compose 简介

        Docker Compose 是一个用于定义和管理多容器 Docker 应用程序的工具。通过编写一个简单的 YAML 文件 (docker-compose.yml),您可以定义应用的服务、网络和卷,并通过一个命令来启动、停止或管理整个应用程序的各个容器。Docker Compose 主要用于以下场景:

  • 微服务架构:管理由多个微服务组成的应用程序。
  • 本地开发环境:为开发者提供一致的本地环境,方便调试和测试。
  • 自动化测试:快速启动和销毁测试环境。

2. Docker Compose 安装

根据您的操作系统,选择以下安装方法。

2.1 在 Ubuntu 上安装 Docker Compose

2.1.1 通过 apt 安装

1.更新软件包索引:

sudo apt update

2.安装 Docker Compose:

sudo apt install docker-compose

3.验证安装:

docker-compose --version

2.1.2 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2 在 CentOS 上安装 Docker Compose

2.2.1 通过 EPEL 安装

1.启用 EPEL 仓库:

sudo yum install epel-release

2.安装 Docker Compose:

sudo yum install docker-compose

3.验证安装:

docker-compose --version

2.2.2 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2.3 使用 pip 安装

1.安装 pip:

sudo yum install python3-pip

2.通过 pip 安装 Docker Compose:

sudo pip3 install docker-compose

3.验证安装:

docker-compose --version

2.3 在 openEuler 上安装 Docker Compose

openEuler 与 CentOS 类似,但在某些方面有所不同。以下是两种推荐的安装方法。

2.3.1 使用官方脚本安装最新版本

1.下载最新版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.赋予执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.验证安装:

docker-compose --version

2.2.2 检查并通过 dnf 安装 Docker Compose

1.更新软件包索引:

sudo dnf update

2.搜索 Docker Compose 包:

sudo dnf search docker-compose

如果存在可用的 Docker Compose 包,您会在结果中看到。

3.安装 Docker Compose:

如果搜索结果中显示了 Docker Compose,可以直接使用以下命令安装:

sudo dnf install docker-compose

4.验证安装:

docker-compose --version

2.3.3 使用 pip 安装

1.安装 pip:

sudo dnf install python3-pip

2.通过 pip 安装 Docker Compose:

sudo pip3 install docker-compose

3.验证安装:

docker-compose --version

3. Docker Compose 测试示例

创建一个简单的 docker-compose.yml 文件,包含一个 Nginx 服务和一个 MySQL 数据库服务。

3.1 目录结构:

my_project/

├── docker-compose.yml
└── html/
    └── index.html

3.2 docker-compose.yml 文件内容:

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8081:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    depends_on:
      - db

  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: testdb
      MYSQL_USER: testuser
      MYSQL_PASSWORD: testpassword
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:
 

3.3 html/index.html 内容示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Docker Compose Test</title>
</head>
<body>
    <h1>Docker Compose is working!</h1>
</body>
</html>

3.4 启动服务

docker-compose up -d

3.5 访问 Web 服务

在浏览器中访问 http://localhost:8081,您应该看到页面显示 “Docker Compose is working!”。

3.6 看能出现问题

3.6.1 解决端口冲突

如果遇到端口冲突错误,您可以:

1.查找并终止占用端口的进程。

sudo lsof -i :8080 sudo kill <PID>

2.修改 docker-compose.yml 文件中的端口,使用未占用的端口。

3.6.2 停止并移除服务

docker-compose down

4.docker compose常用命令

4.1 启动和停止服务

4.1.1 启动服务

docker-compose up

这个命令会启动 docker-compose.yml 文件中定义的所有服务。如果添加 -d 参数,服务将在后台运行(detached 模式):

docker-compose up -d

4.1.2 停止服务

docker-compose stop

这个命令会停止正在运行的所有服务,但不会移除容器。

4.1.3 停止并移除容器、网络、卷

docker-compose down

这个命令会停止所有服务,并移除创建的容器、网络和卷。如果您想移除关联的数据卷,可以添加 -v 选项:

docker-compose down -v

4.2 构建和管理服务

4.2.1 构建或重建服务

docker-compose build

这个命令根据 Dockerfile 构建镜像。如果只想构建某个服务,可以指定服务名:

docker-compose build <service_name>

4.2.2 拉取服务的镜像

docker-compose pull

这个命令会从远程仓库拉取 docker-compose.yml 文件中定义的镜像。

4.2.3 重新启动服务

docker-compose restart

这个命令会重启所有运行中的服务。

4.3  监控和调试

4.3.1 查看服务的日志

docker-compose logs

这个命令会显示所有服务的日志。如果只想查看某个服务的日志,可以指定服务名:

docker-compose logs <service_name>

4.3.2 列出当前项目的所有容器

docker-compose ps

这个命令会显示当前项目中所有容器的状态和端口映射等信息。

4.3.3 查看服务的状态

docker-compose top

这个命令会显示当前运行的容器及其相关的进程信息。

4.4 扩展和缩放服务

4.4.1 扩展服务

docker-compose up --scale <service_name>=<replica_count>

这个命令会将指定的服务扩展到指定的副本数。例如,扩展 web 服务到 3 个实例:

docker-compose up --scale web=3

4.5 运行一次性命令和任务

4.5.1 在服务容器中运行命令

docker-compose exec <service_name> <command>

这个命令允许您在指定的服务容器中执行命令。例如,在 web 服务容器中打开 Bash shell:

docker-compose exec web bash

4.5.2 运行一次性任务

docker-compose run <service_name> <command>

这个命令会启动一个新的容器并运行指定的命令,然后停止并移除该容器。例如:

docker-compose run web echo "Hello, Docker Compose!"

4.6 配置管理

4.6.1 查看配置

docker-compose config

这个命令会显示当前项目的配置内容,包括合并的配置文件。

4.6.2 列出定义的服务

docker-compose config --services

这个命令会列出 docker-compose.yml 文件中定义的所有服务。

相关文章:

docker compse简介与安装

目录 1. Docker Compose 简介 2. Docker Compose 安装 2.1 在 Ubuntu 上安装 Docker Compose 2.1.1 通过 apt 安装 2.1.2 使用官方脚本安装最新版本 2.2 在 CentOS 上安装 Docker Compose 2.2.2 使用官方脚本安装最新版本 2.2.3 使用 pip 安装 2.3 在 openEuler 上安装…...

基于深度学习的零样本学习

零样本学习&#xff08;Zero-Shot Learning, ZSL&#xff09;是深度学习中的一个前沿研究领域&#xff0c;其目标是在没有见过目标类别的样本的情况下&#xff0c;对这些新类别进行识别或分类。这种方法特别适用于在实际应用中存在大量未标注类别或新类别不断涌现的场景&#x…...

C++——list容器以及手动实现

LIST容器 list概述列表容器属性例子 list函数构造函数默认构造函数&#xff1a;带有元素个数和元素初值的构造函数&#xff1a;范围构造函数&#xff1a;拷贝构造函数&#xff1a;移动构造函数&#xff1a;示例 赋值运算符重载拷贝赋值操作符 (1)&#xff1a;移动赋值操作符 (2…...

Win11系统文件资源管理器鼠标右键卡顿解决方法

引用链接&#xff1a; Windows 11文件资源管理器崩溃怎么解决&#xff1f;看看这7个解决办法&#xff01;...

零基础学Python之 第十八讲 文件读写

当你开始学习Python编程时&#xff0c;文件读写是一个非常基础且重要的技能。本篇博客将引导你从零开始学习如何在Python中进行文件读写操作。 1. 打开文件 在Python中&#xff0c;要操作一个文件&#xff0c;首先需要打开它。使用内置的 open() 函数来打开文件&#xff0c;语…...

检索增强生成(RAG):智能内容生成的新纪元

引言 在大 AI 时代&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;模型&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;&#xff0c;已经展现出了令人瞩目的能力。然而&#xff0c;这些模型在提供信息的准确、即时、专业、权威等方面仍存在局限。检索增…...

ubuntu2204安装elasticsearch7.17.22

下载安装 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.22-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.22-amd64.deb.sha512 shasum -a 512 -c elasticsearch-7.17.22-amd64.deb.sha512 su…...

介绍Servlet后端中两种接收参数方式req.getAttributer和req.getParameter的区别

数据来源 getParameter&#xff1a;此方法用于获取客户端发送的请求中携带的参数&#xff0c;通常这些参数是通过HTTP GET或POST请求传递的表单数据。例如&#xff0c;用户填写的用户名和密码等输入信息。getAttribute&#xff1a;该方法用来获取在服务器端通过setAttribute方法…...

Delphi FMX安卓Android播放mp3音频内存流

【笔记&#xff1a;安卓开发JavaDelphi FMX】 Delphi FMX跨平台的MediaPlayer无法播放音频数据流只能打开音频文件播放&#xff0c;但有时候需要直接播放内存流数据而无需生成文件&#xff0c;可以通过把内存流转ByteArray再通过Android平台系统原生的MediaDataSource或ParcelF…...

MapUtils常用方法

1、摘要 MapUtils是一个用于处理Map对象的实用工具类&#xff0c;它提供了许多方便的方法来执行常见的操作&#xff0c;如获取值、设置默认值、合并Map等。本文将介绍MapUtils的常见用法&#xff0c;以帮助你更轻松地处理Map数据。 2、前言 在Java编程中&#xff0c;Map是一…...

自定义PasswordEditText控件,在手机字体应用后,字体样式未发生改变

原来的输入类型inputType为textPassword&#xff0c;现在将 inputType删掉即可...

学习打卡第31天

...

opencascade AIS_TexturedShape源码学习 贴纹理

opencascade AIS_TexturedShape opencascade 贴纹理 前言 //! 该类允许在形状上映射纹理。 //! 显示模式 AIS_WireFrame (0) 和 AIS_Shaded (1) 的行为与 AIS_Shape 中的行为相同&#xff0c; //! 而新模式 2 (包围盒) 和 3 (纹理映射) 扩展了其功能。 //! //! 纹理本身在 (0…...

C# winform 串口读取字节流,MB级别字节流

一、串口读取字节流 在 C# 中使用 Windows Forms (WinForms) 应用程序进行串口通信时&#xff0c;通常会使用 System.IO.Ports 命名空间中的 SerialPort 类。以下是一个简单的示例&#xff0c;展示了如何设置一个串口并读取字节流。 步骤 1: 添加引用 确保你的项目中已经包含…...

创建一个简单的单链表

1.头文件的Slist.h的代码 #pragma once #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> typedef int SListint; typedef struct Slist//单链表 {SListint data;struct Slist* next; }SL;//尾插 void SlistPushBank(SL*…...

15.1 Zookeeper简介安装及基础使用

1. Zookeeper介绍 1.1 介绍 1.2 应用场景简介 1.3 zookeeper工作原理 1.4 zookeeper特点...

详细说明Java中Map和Set接口的使用方法

Map与Set的基本概念与场景 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有&#xff1a; 1. 直接遍历&#xff0c;时间复杂度为O(N)&#xff0c;元素如果比较多效率会非常慢。 2. 二分查找&#x…...

CSS3 scale 适配

Scale适配&#xff0c;在前端开发中&#xff0c;特别是在CSS3中&#xff0c;主要指的是使用scale()函数对元素进行缩放处理&#xff0c;以适应不同的屏幕尺寸或达到特定的视觉效果。以下是对Scale适配的详细介绍&#xff1a; 一、基本概念 scale() 是CSS3中transform属性的一…...

SX_初识GitLab_1

1、对GitLab的理解&#xff1a; 目前对GitLab的理解是其本质是一个远程代码托管平台&#xff0c;上面托管多个项目&#xff0c;每个项目都有一个master主分支和若干其他分支&#xff0c;远程代码能下载到本机&#xff0c;本机代码也能上传到远程平台 1.分支的作用&#xff1a…...

这才是 PHP 高性能框架 Workerman 的立命之本

大家好&#xff0c;我是码农先森。 在这个大家都崇尚高性能的时代&#xff0c;程序员的谈笑间句句都离不开高性能&#xff0c;仿佛嘴角边不挂着「高性能」三个字都会显得自己很 Low&#xff0c;其中众所皆知的 Nginx 就是高性能的代表。有些朋友可能连什么是高性能都不一定理解…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目&#xff0c;设置虚拟环境&#xff0c;出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...