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

docker-compose入门级实战教程

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀
🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。
🌟🧭 在这里,每个错误都是成长的阶梯,每条建议都是前进的动力。
🌟🧭 在这里,我们一起成长,一起进步,让我们在知识的世界里畅游无阻,共同创造一个充满智慧和创新的明天。
🌟📚 点击关注,加入我们的技术探索之旅吧!❤️📖✨
✨博客主页:远见阁小民的主页
📕本文专栏:后端专栏
📕其他专栏:AI专栏 Python专栏 其他专栏 白帽学徒笔记
Linux专栏

1、简介

   Docker Compose是一个用来定义和运行复杂应用的Docker工具。

   一个使用Docker容器的应用,通常由多个容器组成。 使用Docker Compose不再需要使用shell脚本来启动容器。

   Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动、停止和重启应用,非常适合组合使用多个容器进行开发的场景。

2、Compose和Docker兼容性

在这里插入图片描述
   安装docker和docker-compose方法将不在这里说明
   docker-compose安装参考官方文档:Docker Compose官网 操作即可。
   下面就如何使用docker-compose容器编排技术快速安装mysql和nginx做一下简单说明,新手可以作为入门学习模板参考使用。

3、编写docker-compose.yml文件

version: "3"
services:mysql8:image: mysql:8command:--character-set-server=utf8mb4--collation-server=utf8mb4_unicode_ci--lower_case_table_names=1--sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONrestart: alwaysprivileged: trueenvironment:- MYSQL_ROOT_HOST=%- MYSQL_ROOT_PASSWORD=fenglm@123- MYSQL_DATABASE=fenglmdb- MYSQL_USER=fenglm- MYSQL_PASSWORD=fenglm.123ports:- '3306:3306'volumes:- ./data/mysql:/var/lib/mysqlnginx:restart: alwaysimage: nginxports:- 80:80- 443:443volumes:- /opt/fenglm/nginx/html:/usr/share/nginx/html- /opt/fenglm/nginx/www:/var/www- /opt/fenglm/nginx/logs:/var/log/nginx- /opt/fenglm/nginx/nginx.conf/:/etc/nginx/nginx.conf- /opt/fenglm/nginx/etc/cert:/etc/nginx/cert- /opt/fenglm/nginx/conf.d:/etc/nginx/conf.denvironment:- NGINX_PORT=80privileged: true

3.1 新建目录

 服务器中新建目录/opt/fenglm/

3.2 拷贝docker-compose.yml文件

将编写好的docker-compose.yml文件拷贝到/opt/fenglm/目录下

3.3 执行命令

docker-compose up -d

3.4 设置别名方法如下

可以给docker-compose配置个别名如dc,这样命令就不用写那么长了

vim /root/.bashrc

在这里插入图片描述

3.5 加载配置,使其立即生效

source /root/.bashrc

3.6 这样命令就可以简写了,如下所示

dc up -d

3.7 查看安装结果

在这里插入图片描述

4、常用命令参考

4.1 查看nginx容器的全部打印日志

dc logs -f nginx

4.2 查看nginx容器最后100条的打印日志

dc logs -f --tail 100 nginx

4.3 其他命令参考

1. docker-compose up用途: 创建并启动 docker-compose.yml 文件中定义的所有服务。示例: docker-compose up
常用选项:-d 或 --detach: 以后台模式运行容器。--build: 在启动之前强制重新构建服务镜像。--force-recreate: 强制重新创建容器,即使配置或镜像没有变化。
2. docker-compose down用途: 停止并删除 docker-compose.yml 文件中定义的所有服务容器、网络和卷(除非有指定 -v 选项)。示例: docker-compose down
常用选项:-v 或 --volumes: 删除与服务相关的卷。--rmi all: 删除所有服务的镜像。
3. docker-compose build用途: 根据 docker-compose.yml 文件构建服务镜像。示例: docker-compose build
常用选项:--no-cache: 构建时不使用缓存。--force-rm: 删除中间容器。
4. docker-compose start用途: 启动已经存在但停止的容器。示例: docker-compose start
5. docker-compose stop用途: 停止运行中的服务容器。示例: docker-compose stop
6. docker-compose restart用途: 重新启动服务容器。示例: docker-compose restart
7. docker-compose ps用途: 列出当前项目中所有服务的容器状态。示例: docker-compose ps
8. docker-compose logs用途: 查看服务容器的日志。示例: docker-compose logs
常用选项:-f 或 --follow: 实时跟踪日志输出。--tail NUMBER: 仅显示最后 NUMBER 行日志。
9. docker-compose exec用途: 在运行的容器内执行命令。示例: docker-compose exec web bash(在 web 服务容器中打开一个 bash 终端)
10. docker-compose run用途: 运行一个一次性命令(临时容器),与 exec 不同的是它会创建一个新的容器来运行命令。示例: docker-compose run web bash
常用选项:--rm: 容器退出后自动删除。
11. docker-compose pull用途: 拉取 docker-compose.yml 文件中定义的服务镜像。示例: docker-compose pull
12. docker-compose config用途: 校验和显示 Compose 文件的有效配置。示例: docker-compose config
常用选项:--services: 只列出服务名称。--volumes: 只列出卷。
13. docker-compose scale用途: 设置某个服务的容器副本数量。示例: docker-compose scale web=3(将 web 服务的副本数量设置为 3)注意: 在 Docker Compose v3 版本及更高版本中被弃用,推荐使用 docker-compose up --scale 选项代替。
14. docker-compose rm用途: 删除停止的服务容器。示例: docker-compose rm
常用选项:-f 或 --force: 强制删除,不提示确认。-v: 删除容器关联的卷。

相关文章:

docker-compose入门级实战教程

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…...

MATLAB sort

对数字数组排序对字符串排序对 cell 数组排序降序排序对多维数组排序对结构体数组排序注意事项 在 MATLAB 中, sort 函数用于对数组进行排序。 sort 函数可以对数字数组、字符串、 cell 数组等进行升序或降序排序。以下是 sort 函数的一些常见用法:…...

AB测试实战

AB测试实战 1、AB测试介绍🐾 很多网站/APP的首页都会挂一张头图(Banner),用来展示重要信息,头图是否吸引人会对公司的营收带来重大影响,一家寿险公司Humana设计了如下三张头图,现在需要决定使用哪一张放到首页&#x…...

Java高级面试精粹:问题与解答集锦(六)

Java 面试问题及答案 1. 请解释Java中的多线程概念,并说明如何实现它? 答案: 多线程是指在Java程序中同时运行多个线程的功能。线程是程序执行的最小单元,Java中的多线程可以通过继承Thread类或实现Runnable接口来实现。 继承Th…...

MySQL之数据库数据库范式学习笔记(二)

三大范式 范式是数据库设计中的概念,用于规范化数据结构,以减少数据冗余并确保数据的一致性和完整性。MySQL 数据库设计通常遵循一定的范式,其中最常见的是第一至第三范式。以下是各个范式的简要说明: 第一范式(1NF&…...

【Qt】 new成功,但是没有进入到构造函数。

NameTest工程中 nametest.cpp NameTest::NameTest() {pdata new privateAB; }NameTest::~NameTest() {if (pdata){privateAB *p (privateAB *)pData; //void *pdata nullptr;delete p;pdata nullptr;} }内部类: privateAB #include "private.h"#i…...

高清多媒体接口(High Definition Multimedia Interface, HDMI)

目录 1. Overview1.1. Time Minimized Differential Signal(TMDS)1.2. Display Data Channel(DDC)1.3. Consumer Electronics Control(CEC)1.4. HDMI Ethernet and Audio Return Channel(HEAC)1.5. Hot Plug Detected(HPD)2. Signaling and Encoding3. Video4. Control and Con…...

Spring AI 第二讲 之 Chat Model API 第五节HuggingFace Chat

HuggingFace Inference Endpoints 允许您在云中部署和提供机器学习模型&#xff0c;并通过 API 对其进行访问。 开始使用 有关 HuggingFace Inference Endpoints 的更多详细信息&#xff0c;请访问此处。 前提条件 添加 spring-ai-huggingface 依赖关系&#xff1a; <d…...

【笔记】Sturctured Streaming笔记总结(Python版)

目录 相关资料 一、概述 1.1 基本概念 1.2 两种处理模型 &#xff08;1&#xff09;微批处理 &#xff08;2&#xff09;持续处理 1.3 Structured Streaming和Spark SQL、Spark Streaming关系 二、编写Structured Streaming程序的基本步骤 三、输入源 3.1 File源 &a…...

Python函数进阶

文章目录 1 函数多返回值2 函数多种传参方式2.1 位置参数2.2 关键字参数2.3 缺省参数2.4 不定长参数 3 匿名函数函数作为参数传递lambda匿名函数 1 函数多返回值 def test_return():return 1,2,3 x,y,z test_return() print(x) print(y) print(z)2 函数多种传参方式 2.1 位置参…...

[知识点]c++ delete与delete[ ]

在C中&#xff0c;delete 和 delete[] 是用于释放动态分配的内存的关键字。它们的使用取决于内存是如何分配的。具体来说&#xff1a; delete 用于释放通过 new 分配的单个对象。delete[] 用于释放通过 new[] 分配的数组。 如果你通过 new 分配了一个单个对象&#xff0c;那么…...

iCloud如何被高效利用?

1.同步设备 同步设备是指利用云服务&#xff08;如iCloud&#xff09;将多台设备上的数据保持同步&#xff0c;确保这些设备上的信息始终保持一致。以下是详细说明如何同步设备使用iCloud&#xff1a; 1. 打开iCloud设置&#xff1a;在iOS设备上&#xff0c;打开“设置”应用…...

月入30000的软件测试人员,简历是什么样子的?

我们都知道&#xff0c;简历是一个人进入职场的敲门砖。从某种层面来说&#xff0c;简历也像一个人的具象身份证&#xff0c;或者专业资格证。所以&#xff0c;一份简历的好坏&#xff0c;不仅关乎个人的“脸面”&#xff0c;更关乎你是不是一个有“含金量”的技术人员。 所以…...

nginx官网源代码方式安装nginx并编译

从Nginx官网下载特定版本的源代码并编译安装的步骤如下&#xff1a; 确定需要的版本&#xff1a; 前往Nginx 官方网站下载页面&#xff0c;选择你需要的Nginx版本。 下载源代码&#xff1a; 使用wget命令下载源代码压缩包。例如&#xff0c;下载1.21.0版本的Nginx&#xff1a;…...

iOS ActivityViewController使用

UIActivityViewController是iOS中用于展示一个活动列表的视图控制器&#xff0c;允许用户通过各种内置或第三方的应用来分享内容。以下是使用UIActivityViewController分享文本内容的示例代码&#xff1a; import UIKit class ViewController: UIViewController { IBA…...

新手快速上手IDEA【常用快捷键】

目录 一、常用二、进阶&#xff08;提高编码速度&#xff09;三、其他四、查找、替换与关闭最后 一、常用 说明快捷键复制代码ctrl c粘贴ctrl v剪切ctrl x撤销ctrl z反撤销ctrl shift z保存-save allctrl s全选-select allctrl a 二、进阶&#xff08;提高编码速度&a…...

MySQL里如果有字段是function怎么查询呢?

在MySQL中&#xff0c;字段名通常不会命名为function&#xff0c;因为FUNCTION是MySQL的保留关键字&#xff0c;用于定义存储函数。但是&#xff0c;如果你确实有一个字段名叫做function&#xff08;尽管这通常不是一个好的实践&#xff09;&#xff0c;你仍然可以查询它。你只…...

从高海拔到严寒季的测量作业更要「快准稳」,怎么实现?

西藏那曲海拔4500米公路勘测项目赶工期 “必须要保障在西藏那曲地区承接的公路勘测项目赶工期需求&#xff0c;海拔高达4500米、网络通讯不足、部分范围存在无网以及地基信号覆盖可能不足的情况&#xff0c;需要能满足环境和项目需求的专业RTK设备紧急送到。” 客户的一个电话…...

WowTab:简洁界面,效率神器,重塑新标签页浏览体验

目录 一、插件简介 二、插件功能 2.1 支持两种模式切换 2.2 效率组件介绍 2.3 设置中心 三、使用总结 四、插件安装说明 4.1 Edge安装 4.2 Chrome安装 大家在日常办公当中&#xff0c;是不是觉得新标签页太平淡无奇&#xff1f;来&#xff0c;给自己的浏览器加点料&…...

PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量

得益于全球的开发者贡献&#xff0c;PostgreSQL已成长为一款拥有众多全球用户和贡献者、成熟稳定的开源数据库。2024年5月23日&#xff0c;PostgreSQL全球开发组宣布&#xff0c;PostgreSQL 17的首个 Beta 版本现已开放下载。本次新版本带来了众多惊喜。值得一提的是&#xff0…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...