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:
- dbdb:
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/mysqlvolumes:
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 上安装…...
基于深度学习的零样本学习
零样本学习(Zero-Shot Learning, ZSL)是深度学习中的一个前沿研究领域,其目标是在没有见过目标类别的样本的情况下,对这些新类别进行识别或分类。这种方法特别适用于在实际应用中存在大量未标注类别或新类别不断涌现的场景&#x…...
C++——list容器以及手动实现
LIST容器 list概述列表容器属性例子 list函数构造函数默认构造函数:带有元素个数和元素初值的构造函数:范围构造函数:拷贝构造函数:移动构造函数:示例 赋值运算符重载拷贝赋值操作符 (1):移动赋值操作符 (2…...
Win11系统文件资源管理器鼠标右键卡顿解决方法
引用链接: Windows 11文件资源管理器崩溃怎么解决?看看这7个解决办法!...
零基础学Python之 第十八讲 文件读写
当你开始学习Python编程时,文件读写是一个非常基础且重要的技能。本篇博客将引导你从零开始学习如何在Python中进行文件读写操作。 1. 打开文件 在Python中,要操作一个文件,首先需要打开它。使用内置的 open() 函数来打开文件,语…...
检索增强生成(RAG):智能内容生成的新纪元
引言 在大 AI 时代,生成式人工智能(GenAI)模型,尤其是大型语言模型(LLM),已经展现出了令人瞩目的能力。然而,这些模型在提供信息的准确、即时、专业、权威等方面仍存在局限。检索增…...
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:此方法用于获取客户端发送的请求中携带的参数,通常这些参数是通过HTTP GET或POST请求传递的表单数据。例如,用户填写的用户名和密码等输入信息。getAttribute:该方法用来获取在服务器端通过setAttribute方法…...
Delphi FMX安卓Android播放mp3音频内存流
【笔记:安卓开发JavaDelphi FMX】 Delphi FMX跨平台的MediaPlayer无法播放音频数据流只能打开音频文件播放,但有时候需要直接播放内存流数据而无需生成文件,可以通过把内存流转ByteArray再通过Android平台系统原生的MediaDataSource或ParcelF…...
MapUtils常用方法
1、摘要 MapUtils是一个用于处理Map对象的实用工具类,它提供了许多方便的方法来执行常见的操作,如获取值、设置默认值、合并Map等。本文将介绍MapUtils的常见用法,以帮助你更轻松地处理Map数据。 2、前言 在Java编程中,Map是一…...
自定义PasswordEditText控件,在手机字体应用后,字体样式未发生改变
原来的输入类型inputType为textPassword,现在将 inputType删掉即可...
学习打卡第31天
...
opencascade AIS_TexturedShape源码学习 贴纹理
opencascade AIS_TexturedShape opencascade 贴纹理 前言 //! 该类允许在形状上映射纹理。 //! 显示模式 AIS_WireFrame (0) 和 AIS_Shaded (1) 的行为与 AIS_Shape 中的行为相同, //! 而新模式 2 (包围盒) 和 3 (纹理映射) 扩展了其功能。 //! //! 纹理本身在 (0…...
C# winform 串口读取字节流,MB级别字节流
一、串口读取字节流 在 C# 中使用 Windows Forms (WinForms) 应用程序进行串口通信时,通常会使用 System.IO.Ports 命名空间中的 SerialPort 类。以下是一个简单的示例,展示了如何设置一个串口并读取字节流。 步骤 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是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。以前常见的搜索方式有: 1. 直接遍历,时间复杂度为O(N),元素如果比较多效率会非常慢。 2. 二分查找&#x…...
CSS3 scale 适配
Scale适配,在前端开发中,特别是在CSS3中,主要指的是使用scale()函数对元素进行缩放处理,以适应不同的屏幕尺寸或达到特定的视觉效果。以下是对Scale适配的详细介绍: 一、基本概念 scale() 是CSS3中transform属性的一…...
SX_初识GitLab_1
1、对GitLab的理解: 目前对GitLab的理解是其本质是一个远程代码托管平台,上面托管多个项目,每个项目都有一个master主分支和若干其他分支,远程代码能下载到本机,本机代码也能上传到远程平台 1.分支的作用:…...
这才是 PHP 高性能框架 Workerman 的立命之本
大家好,我是码农先森。 在这个大家都崇尚高性能的时代,程序员的谈笑间句句都离不开高性能,仿佛嘴角边不挂着「高性能」三个字都会显得自己很 Low,其中众所皆知的 Nginx 就是高性能的代表。有些朋友可能连什么是高性能都不一定理解…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
