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

docker-compose安装部署和使用

docker-compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务
1.docker-compose安装
github上下载二进制文件

https://github.com/docker/compose/releases/download/v2.29.7/docker-compose-linux-aarch64

只需要放入/usr/local/bin/ 路径下并重新命名添加可执行权限

mv docker-compose-linux-aarch64 docker-compose
chmod +x docker-compose

2.dockr-compose命令

docker-compose up

用于部署一个 Compose 应用
默认情况下该命令会读取名为 docker-compose.yml 或 docker-compose.yaml 的文件
当然用户也可以使用 -f 指定其他文件名。通常情况下,会使用 -d 参数令应用在后台启动

docker-compose stop

停止 Compose 应用相关的所有容器,但不会删除它们
被停止的应用可以很容易地通过 docker-compose restart 命令重新启动

docker-compose rm

用于删除已停止的 Compose 应用
它会删除容器和网络,但是不会删除卷和镜像

docker-compose restart

重启已停止的 Compose 应用

docker-compose ps

用于列出 Compose 应用中的各个容器
输出内容包括当前状态、容器运行的命令以及网络端口

docker-compose down

停止并删除运行中的 Compose 应用

它会删除容器和网络,但是不会删除卷和镜像

接下来进入实战创建一个名为 docker-compose.yml 的文件,部署redis```bash
version: '3.8'services:redis:image: rediscontainer_name: redisrestart: alwayssysctls:net.core.somaxconn: 1024ports:- "6379:6379"volumes:- /data/redis/redis.conf:/etc/redis/redis.conf- /data/redis/log/:/var/log/redis/- /data/redis/data:/datacommand: ["redis-server", "/etc/redis/redis.conf", "--appendonly", "yes", "--requirepass", "密码"]

运行以下命令启动服务:

docker-compose up -d

进入容器

docker-compose exec redis /bin/bash

创建一个名为 docker-compose.yml 的文件,部署nginx

version: '3.8'services:nginx:image: nginxcontainer_name: nginxports:- "18088:80"volumes:- /etc/localtime:/etc/localtime- /data/nginx/conf/:/etc/nginx- /data/nginx/dist/:/data/nginx/html/- /data/nginx/logs/:/var/log/nginx/tty: true
docker-compose up -d

进入容器

docker-compose exec nginx /bin/bash

如果容器使用的是其他 shell,如 /bin/sh,请相应调整命令。

使用说明:
创建一个名为 docker-compose.yml 的文件,部署minio

version: '3.8'services:minio:image: minio/minio:latestcontainer_name: minioports:- "10087:9000"- "10088:9001"environment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: test@2024TZ: Asia/Shanghaivolumes:- /data/minio/data:/data- /data/minio/config:/root/.miniocommand: server /data --console-address ":9001" --address ":9000"logging:driver: local
docker-compose up -d

进入容器

docker-compose exec minio /bin/bash

使用docker stack(堆栈)服务编排

使用 Docker Stack 进行服务编排,你需要创建一个 YAML 文件,定义服务的配置。以下是将你提供的 Redis 配置转换为 Docker Stack YAML 文件的示例:
docker-compose.yml

version: '3.8'  # 指定 Compose 文件的版本services:redis:image: redis  # 使用的镜像restart: always  # 设置重启策略deploy:replicas: 1  # 指定副本数量resources:limits:memory: 512M  # 设置内存限制ports:- "6379:6379"  # 端口映射volumes:- redis_conf:/etc/redis/redis.conf  # 挂载配置文件- redis_log:/var/log/redis/  # 挂载日志目录- redis_data:/data  # 挂载数据目录sysctls:net.core.somaxconn: "1024"  # 设置内核参数command: ["redis-server", "/etc/redis/redis.conf", "--appendonly", "yes", "--requirepass", "你的密码"]  # 启动命令volumes:redis_conf:driver: localdriver_opts:type: nonedevice: /data/redis/redis.confo: bindredis_log:driver: localdriver_opts:type: nonedevice: /data/redis/log/o: bindredis_data:driver: localdriver_opts:type: nonedevice: /data/redis/datao: bind

部署堆栈
将上述内容保存为 docker-compose.yml 文件。
部署堆栈
在终端中使用以下命令来部署堆栈,命名为 redis_stack:

docker stack deploy -c docker-compose.yml redis_stack

查看服务状态
使用以下命令查看 redis_stack 堆栈及其服务的状态:

docker stack services redis_stack

删除堆栈
如果不再需要堆栈,可以使用以下命令删除它:

docker stack rm redis_stack

这样,你就将堆栈命名为与服务相关的名称 redis_stack 了

Docker Stack 的 docker-compose.yml 格式,并且使用与服务相关的命名,以下是相应的配置nginx示例:
docker-compose.yml

version: '3.8'  # 指定 Compose 文件的版本services:nginx:image: nginx  # 使用的镜像restart: always  # 设置重启策略ports:- "18088:80"  # 端口映射volumes:- /etc/localtime:/etc/localtime  # 挂载本地时间- nginx_conf:/etc/nginx  # 挂载配置文件- nginx_dist:/data/nginx/html/  # 挂载静态文件- nginx_logs:/var/log/nginx/  # 挂载日志目录volumes:nginx_conf:driver: localdriver_opts:type: nonedevice: /data/nginx/conf/o: bindnginx_dist:driver: localdriver_opts:type: nonedevice: /data/nginx/dist/o: bindnginx_logs:driver: localdriver_opts:type: nonedevice: /data/nginx/logs/o: bind

部署堆栈
在终端中使用以下命令来部署堆栈,命名为 nginx_stack:

docker stack deploy -c docker-compose.yml nginx_stack

查看服务状态
使用以下命令查看 nginx_stack 堆栈及其服务的状态:

docker stack services nginx_stack

删除堆栈
如果不再需要堆栈,可以使用以下命令删除它:

docker stack rm nginx_stack

注意事项
确保宿主机的 /data/nginx/ 目录及其子目录存在,并且具有适当的权限。
确保 /etc/localtime 挂载是正确的,以保证时区一致性。
这样,你就可以通过 Docker Stack 成功管理 Nginx 服务了!

Docker Stack 的 docker-compose.yml 格式,并使用与服务相关的命名,以下是相应的配置minio示例:

docker-compose.yml

version: '3.8'  # 指定 Compose 文件的版本services:minio:image: minio/minio:latest  # 使用的镜像restart: always  # 设置重启策略ports:- "10087:9000"  # 映射端口- "10088:9001"  # 控制台端口映射environment:MINIO_ROOT_USER: "minioadmin"  # 设置 MinIO 根用户MINIO_ROOT_PASSWORD: "test@2024"  # 设置 MinIO 根密码TZ: "Asia/Shanghai"  # 设置时区volumes:- minio_data:/data  # 挂载数据目录- minio_config:/root/.minio  # 挂载配置目录deploy:restart_policy:condition: on-failure  # 设置重启策略为失败重启command: server /data --console-address ":9001" --address ":9000"  # 启动命令volumes:minio_data:driver: localdriver_opts:type: nonedevice: /data/minio/datao: bindminio_config:driver: localdriver_opts:type: nonedevice: /data/minio/configo: bind

部署堆栈
在终端中使用以下命令来部署堆栈,命名为 minio_stack:

docker stack deploy -c docker-compose.yml minio_stack

查看服务状态
使用以下命令查看 minio_stack 堆栈及其服务的状态:

docker stack services minio_stack

删除堆栈
如果不再需要堆栈,可以使用以下命令删除它:

docker stack rm minio_stack

注意事项
确保宿主机的 /data/minio/ 目录及其子目录存在,并且具有适当的权限。
将 MinIO 的用户名和密码更改为更安全的值,以确保安全性。
这样,你就可以通过 Docker Stack 成功管理 MinIO 服务了!

相关文章:

docker-compose安装部署和使用

docker-compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务 1.docker-compose安装 github上下载二进制文…...

Java之静态

静态: 使用 static 关键字声明的成分属于类本身,而不是类的任何特定对象的实例。这意味着你可以在创建类的任何对象之前访问它们。 静态变量: 静态变量(也称为类变量)是被类的所有实例共享的变量。无论你创建多少对象…...

PCB缺陷检测数据集 xml 可转yolo格式 ,共10688张图片

PCB缺陷检测数据集(yolov5,v7,v8) 数据集总共有两个文件夹,一个是pcb整体标注,一个是pcb部分截图。 整体标注有6个分类,开路,短路等都已经标注,标注格式为xml,每个文件夹下有100多张…...

【linux开发-驱动】-设备树

一、什么是设备树 描述设备树的文件叫做DTS(Device Tree Source),采用树形结构描述板级设备,也就是开发板上的设备信息,比如IIC接口上接了那些设备,内存基地址等 树的主干就是系统总线,枝干就…...

不动产证ocr识别场景解析、房产证识别API

不动产证OCR识别、房产证识别接口是通过光学字符识别技术(OCR)从不动产证书的图像或扫描件中自动提取关键信息的技术应用。该场景的主要目标是提高信息录入的效率,减少人工输入的错误,并能自动化处理大量不动产证书、房产证的数据…...

gpg 密钥生成、导入、导出、自动输入密码

目录 一、系统环境 二、常用命令(以签名密钥为例) (1)生成密钥 (2)列出私钥 (3)列出公钥 (4)导出公钥 (5)导出私钥 &#xff…...

新个性化时尚解决方案!Prompt2Fashion:自动生成多风格、类型时尚图像数据集。

今天给大家介绍一种自动化生成时尚图像数据的方法Prompt2Fashion。 首先创建了一组描述,比如“适合婚礼的休闲风格服装”,然后用这些描述来指导计算机生成图像。具体来说,他们使用了大型语言模型来写出这些服装的描述,接着将这些描…...

软件设计师——计算机网络

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:软考——软件设计师🏅往期回顾🏆:软件设计师——操作系统🌟其他专栏🌟:C语言_秋邱 一、OSI/ RM七层模型(⭐⭐⭐)…...

Python 实现电话号码和Email地址提取程序

Python 实现电话号码和Email地址提取程序 背景 在日常工作或学习中,我们经常需要从网页或文档中提取信息,比如电话号码和E-mail地址。手动查找和提取这些信息可能会耗费大量时间,而自动化工具可以帮助我们快速完成这个任务。 本篇博客将带…...

JavaGuide(3)

一、项目背景与简介 JavaGuide由GitHub用户Snailclimb开发并维护,是一个全面而深入的Java学习资源库。它旨在为Java初学者和有经验的开发者提供一个系统的学习路径和丰富的资源,帮助他们系统地学习和巩固Java及相关技术知识。 二、项目内容与特点 Jav…...

微信小程序15天

UniApp(Vue3组合式API)和微信小程序15天学习计划 第1天:开发环境配置和基础知识 UniApp和微信小程序概述及对比安装并配置HBuilderX(UniApp)和微信开发者工具创建第一个UniApp Vue3项目和微信小程序项目了解两个平台的项目结构差异配置外部浏览器和各种小程序模拟…...

用Python制作数据可视化仪表盘:使用Dash与Plotly构建实时交互式仪表盘

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在数据驱动的世界中,可视化是理解和解释复杂数据的关键工具。通过数据可视化,用户能够快速洞察数据趋势,做出明智决策。而仪表盘作为一种高度集成的可视化工具,能够将多种数据图表汇总到一个界面上,便于实时…...

干部管理系统:全面提升干部管理效能

数字化浪潮下,干部管理系统作为管理利器,日益凸显其核心价值。该系统全面实现干部信息的数据化,涵盖从基础档案到教育、工作、培训及考核等全方位细节,信息详尽且条理清晰。这不仅极大提升了干部信息查询与更新的效率,…...

Java之方法

方法&#xff08;函数&#xff09; Java中的方法必须定义在类或接口中。 package day2;import java.util.Scanner;public class way {public static void main(String[] args) {int arr[] new int[5];Scanner sc new Scanner(System.in);for (int i 0; i < arr.length;…...

MyBatis 数据表与实体映射的隐藏陷阱

这两天在处理一个线上问题时&#xff0c;发现Mybatis数据表和实体映射的时候会埋一个坑。这个问题看似微小&#xff0c;但却可能在关键时刻给我们带来不小的困扰。接下来&#xff0c;让我们深入剖析这个问题&#xff0c;并探究其发生的根源。 一、问题描述 我们在使用 Mybati…...

leetcode-239. 滑动窗口最大值

题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [1,3,-1,-3,5,3,6,…...

springboot项目中开启mybatis的sql日志

在 application.yml 文件中 添加 mybatis-plus 配置&#xff0c;再重启项目&#xff0c;这里用到了mybatis-plus的自带sql日志打印 # application-jdbc.yml mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl如果只是用的mybatis的话&#x…...

卷积的计算——nn.Conv2d(Torch.nn里的Convolution Layers模块里的Conv2d类)

**前置知识&#xff1a; 1、张量和通道 张量&#xff1a;多维数组&#xff0c;用来表示数据&#xff08;图像、视频等&#xff09; 通道&#xff1a;图像数据的一部分&#xff0c;表示不同的颜色或特征层 通道只是张量的其中一个维度 以一张RGB图像为例&#xff0c; 该图像…...

确保接口安全:六大方案有效解决幂等性问题

文章目录 六大方案解决接口幂等问题什么是接口幂等&#xff1f;天然幂等不做幂等会怎么样&#xff1f; 解决方案1&#xff09;insert前先select2&#xff09;使用唯一索引3&#xff09;去重表加悲观锁4&#xff09;加乐观锁之版本号机制5&#xff09;使用 Redisson 分布式锁6&a…...

代码随想录算法训练营第二十九天| 93. 复原 IP 地址,78. 子集, 90. 子集 II

93. 复原 IP 地址&#xff0c;78. 子集&#xff0c; 90. 子集 II 93. 复原 IP 地址78. 子集90. 子集 II 93. 复原 IP 地址 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 0 0 到 255 255 255之间组成&#xff0c;且不能含有前导 0 0 0&#xff09;&#xff0c;整…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...