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 允许您在云中部署和提供机器学习模型,并通过 API 对其进行访问。 开始使用 有关 HuggingFace Inference Endpoints 的更多详细信息,请访问此处。 前提条件 添加 spring-ai-huggingface 依赖关系: <d…...
【笔记】Sturctured Streaming笔记总结(Python版)
目录 相关资料 一、概述 1.1 基本概念 1.2 两种处理模型 (1)微批处理 (2)持续处理 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中,delete 和 delete[] 是用于释放动态分配的内存的关键字。它们的使用取决于内存是如何分配的。具体来说: delete 用于释放通过 new 分配的单个对象。delete[] 用于释放通过 new[] 分配的数组。 如果你通过 new 分配了一个单个对象,那么…...
iCloud如何被高效利用?
1.同步设备 同步设备是指利用云服务(如iCloud)将多台设备上的数据保持同步,确保这些设备上的信息始终保持一致。以下是详细说明如何同步设备使用iCloud: 1. 打开iCloud设置:在iOS设备上,打开“设置”应用…...
月入30000的软件测试人员,简历是什么样子的?
我们都知道,简历是一个人进入职场的敲门砖。从某种层面来说,简历也像一个人的具象身份证,或者专业资格证。所以,一份简历的好坏,不仅关乎个人的“脸面”,更关乎你是不是一个有“含金量”的技术人员。 所以…...
nginx官网源代码方式安装nginx并编译
从Nginx官网下载特定版本的源代码并编译安装的步骤如下: 确定需要的版本: 前往Nginx 官方网站下载页面,选择你需要的Nginx版本。 下载源代码: 使用wget命令下载源代码压缩包。例如,下载1.21.0版本的Nginx:…...
iOS ActivityViewController使用
UIActivityViewController是iOS中用于展示一个活动列表的视图控制器,允许用户通过各种内置或第三方的应用来分享内容。以下是使用UIActivityViewController分享文本内容的示例代码: import UIKit class ViewController: UIViewController { IBA…...
新手快速上手IDEA【常用快捷键】
目录 一、常用二、进阶(提高编码速度)三、其他四、查找、替换与关闭最后 一、常用 说明快捷键复制代码ctrl c粘贴ctrl v剪切ctrl x撤销ctrl z反撤销ctrl shift z保存-save allctrl s全选-select allctrl a 二、进阶(提高编码速度&a…...
MySQL里如果有字段是function怎么查询呢?
在MySQL中,字段名通常不会命名为function,因为FUNCTION是MySQL的保留关键字,用于定义存储函数。但是,如果你确实有一个字段名叫做function(尽管这通常不是一个好的实践),你仍然可以查询它。你只…...
从高海拔到严寒季的测量作业更要「快准稳」,怎么实现?
西藏那曲海拔4500米公路勘测项目赶工期 “必须要保障在西藏那曲地区承接的公路勘测项目赶工期需求,海拔高达4500米、网络通讯不足、部分范围存在无网以及地基信号覆盖可能不足的情况,需要能满足环境和项目需求的专业RTK设备紧急送到。” 客户的一个电话…...
WowTab:简洁界面,效率神器,重塑新标签页浏览体验
目录 一、插件简介 二、插件功能 2.1 支持两种模式切换 2.2 效率组件介绍 2.3 设置中心 三、使用总结 四、插件安装说明 4.1 Edge安装 4.2 Chrome安装 大家在日常办公当中,是不是觉得新标签页太平淡无奇?来,给自己的浏览器加点料&…...
PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量
得益于全球的开发者贡献,PostgreSQL已成长为一款拥有众多全球用户和贡献者、成熟稳定的开源数据库。2024年5月23日,PostgreSQL全球开发组宣布,PostgreSQL 17的首个 Beta 版本现已开放下载。本次新版本带来了众多惊喜。值得一提的是࿰…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
