docker-compose容器单机编排

docker-compose容器单机编排

开篇前言

随着网站架构的升级,容器的使用也越来越频繁,应用服务和容器之间的关系也越发的复杂。

这个就要求研发人员能更好的方法去管理数量较多的服务器,而不能手动挨个管理。

例如一个LNMP 架构,就得部署web服务器,后台的程序,数据库,负载均衡等等都需要统一的部署在容器中,那么这个时候就需要统一的容器编排服务,docker-compose,通过单独的docker-compose.yml.模板文件定义一组相关联的应用服务器。

多看看官方文档

看看官方的资料
https://docs.docker.com/compose/compose-file/

第三方的资料也可以看看

https://yeasy.gitbook.io/docker_practice/compose/

在这里插入图片描述

为什么要学习docker-compose

当你去运行一组应用的容器,多组的应用,里面会有很多的容器。

应用1,crm系统,lnmp、8个容器之间,都有关系,如大家都是属于哪一个网段 192.168.15.0/24
8个容器之间的 网络用哪一个网桥
8个容器都要暴露出哪些端口
8个容器都要定义哪些数据卷

应用2 同上,12个容器
12个容器 docker run *  12定义好yaml文件【描述好,你要的】

命令化的一个部署

docker run 运行的时候,再临时传入参数,
–network
-v
–link


yaml 脚本化的部署方式

ansible all -m shell -a ‘xxxx’

install-lnmp.yaml 先描述好,脚本要部署的环境

定义好yaml文件,【描述好 你要】

  1. 用的网桥是谁
  2. 存储卷
  3. 容器和容器之间的依赖关系

自己写过那些yaml脚本

  • ansible playbook ,role 脚本
  • docker-compose.yaml 买哦书容器部署的脚本【描述好,你要部署什么,什么镜像,什么存储】
  • k8s的资源描述yaml【先描述好,你要部署什么,什么存储】

总结一句话,先想好要敲什么命令,再把命令转化成yaml的语法形式

机器上看到的一组运行的服务器

定义一组docker-compose 网站类的服务

web服务器 image : nginx

后台运行的程序服务 images : php-centos python-centos

在这里插入图片描述

compose 是基于定义和运行多个容器的一个docker内置工具

compose 需要你,自己去定义yaml文件来描述多个容器之间的关系

写好yaml之后,基于compose命令去读取yaml内容

如何用docker-compose

1.定义好你容器的关系
nginx
php
mysql
redis 
...yaml语法该怎么样去写,有哪些字段?该用什么语法?缩进关系是什么看看官方的资料
https://docs.docker.com/compose/compose-file/

在这里插入图片描述

所有的高级软件,最精准的资料都在这里找

下一步学习k8s官方的资料,没有这个官网完美

在这里插入图片描述

如何查看官网资料,理解字段如何写

在这里插入图片描述

如何查阅官网的docker-compose字段

在这里插入图片描述

LNMP 公司php后端的员工管理系统

nginx , php , mysql 他们都走互相的主机名

  1. –name mysql

  2. –name my-php --link mysql

  3. –name my-nginx --link my-php

# 比如部署wordpress 到容器里
docker run 挨个运行,每一个容器的环境# 服务1 nginx,web服务,代理服务
# 现有的宿主机nginx的运行环境,迁移到容器里面去 /etc/nginx/docker run -d --name mynginx -p 80:80\
-v /etc/nginx/:/etc/nginx \
-v /var/log/nginx:/var/log/nginx nginx:latest# 服务2 php服务,提供后端服务,wordpress , 官方镜像,php的运行环境。# 先基于dockerfile构建镜像,php+centos环境 , mysqldocker run -d -v 宿主机目录:容器内的目录 myphp 

1.要清楚启动容器的顺序,------- 你写的yaml脚本中各个服务的依赖关系

2.容器启动的参数,如网络,数据卷,端口暴露,这是每一个制定的服务,设置的参数。

安装docker-compose

[root@docker-110 ~]# file /usr/bin/docker-compose 
/usr/bin/docker-compose: cannot open (No such file or directory)# 有的化先删除或者优化curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose# 看看这个命令的信息
file /usr/local/bin/docker-compose 
/usr/local/bin/docker-compose: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=3507aa01d32c34dc8e8c6462b764adb90a82768d, stripped# 给他加上执行的权限
[root@docker-110 ~]# chmod +x /usr/local/bin/docker-compose 

docker-compose命令整理

# 默认使用docker-compose.yml构建镜像
$ docker-compose build
$ docker-compose build --no-cache # 不带缓存的构建# 指定不同yml文件模板用于构建镜像
$ docker-compose build -f docker-compose1.yml# 列出Compose文件构建的镜像
$ docker-compose images                          # 启动所有编排容器服务
$ docker-compose up -d# 查看正在运行中的容器
$ docker-compose ps # 查看所有编排容器,包括已停止的容器
$ docker-compose ps -a# 进入指定容器执行命令
$ docker-compose exec nginx bash 
$ docker-compose exec web python manage.py migrate --noinput# 查看web容器的实时日志
$ docker-compose logs -f web# 停止所有up命令启动的容器
$ docker-compose down # 停止所有up命令启动的容器,并移除数据卷
$ docker-compose down -v# 重新启动停止服务的容器
$ docker-compose restart web# 暂停web容器
$ docker-compose pause web# 恢复web容器
$ docker-compose unpause web# 删除web容器,删除前必需停止stop web容器服务
$ docker-compose rm web  # 查看各个服务容器内运行的进程 
$ docker-compose top     # 合集命令
build
config -q
create
down
events
exec
help
images
kill
logs
pause
restart
rm
run
scale
start
stop
top
unpause
up

docker-compose语法

1.官方文档
https://compose-spec.github.io/compose-spec/#use-cases2.菜鸟文档3.还有一个不错的教程,每一个参数不认识的可以来这里看看
https://yeasy.gitbook.io/docker_practice/compose/
这个网站也不错

在这里插入图片描述

如何理解yaml的元素关系以及作用

在这里插入图片描述

不可能一上来就从头开始写 yaml

shell 脚本

  1. 多看
  2. 多模仿
  3. 熟练看懂较多的脚本后,理解大部分的字段是什么作用,缩进关系,以及改写什么参数,以及遇见不认识的参数,从哪里找资料。
  4. 模仿改造为你自己的脚本,【如智能汽车运行系统】,跑起来,ubuntu里面。。
    【wordpres运行系统】
  5. #docker-compose v3 三代版本,能用最新的字段

docker-compose.yml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode--29.两数相除

解题思路: 1.获取信息: 给定两个整数,一个除数,一个被除数,要求返回商(商取整数) 限制条件:(1)不能使用乘法,除法和取余运算 (2&#…

中山大学GaussianFusion:首个将高斯表示引入端到端自动驾驶多传感器融合的新框架

摘要 近年来由于端到端自动驾驶极大简化了原有传统自动驾驶模块化的流程,吸引了来自工业界和学术界的广泛关注。然而,现有的端到端智驾算法通常采用单一传感器,使其在处理复杂多样和具有挑战性的驾驶场景中受到了限制。而多传感器融合可以很…

《哈希算法》题集

1、模板题集 满足差值的数字对 2、课内题集 字符统计 字符串统计 优质数对 3、课后题集 2006 Equations k倍区间 可结合的元素对 满足差值的数字对 异常频率 神秘数对 费里的语言 连连看 本题集为作者(英雄哪里出来)在抖音的独家课程《英雄C入门到精…

Cordova移动应用对云端服务器数据库的跨域访问

Cordova移动应用对云端服务器数据库的跨域访问 当基于类似 Cordova这样的跨平台开发框架进行移动应用的跨平台开发时,往往需要访问部署在公网云端服务器上的数据库,这时就涉及到了跨域数据访问的问题。 文章目录 Cordova移动应用对云端服务器数据库的跨…

mysql知识点3--创建和使用数据库

mysql知识点3–创建数据库 创建数据库 在MySQL中创建数据库使用CREATE DATABASE语句。语法如下: CREATE DATABASE database_name;其中database_name为自定义的数据库名称。例如创建名为test_db的数据库: CREATE DATABASE test_db;可以添加字符集和排…

林业资源多元监测技术守护绿水青山

在云南高黎贡山的密林中,无人机群正以毫米级精度扫描古树年轮;福建武夷山保护区,卫星遥感数据实时追踪着珍稀动植物的栖息地变化;海南热带雨林里,AI算法正从亿万条数据中预测下一场山火的风险……这些科幻场景&#xf…

一阶/二阶Nomoto模型(野本模型)为何“看不到”船速对回转角速度/角加速度的影响?

提问 图中的公式反映的是舵角和力矩之间的关系, 其中可以看到力矩(可以理解为角加速度)以及相应导致的回转角速度和当前的舵速(主要由船速贡献)有关,那么为什么一阶Nomoto模型(一阶野本&#xf…

深入剖析 C++ 默认函数:拷贝构造与赋值运算符重载

目录 1. 简单认识C 类的默认函数 1.1 默认构造函数 1.2 析构函数 1.3 拷贝构造函数 2. 拷贝构造函数的深入理解 拷贝构造的特点: 实际运用 3. 赋值运算符重载的深入理解 3.1.运算符重载 3.2样例 1.比较运算符重载 2.算术运算符重载 3.自增和自减运算符重载 4.输…

板凳-------Mysql cookbook学习 (十--3)

5.16 用短语来进行fulltext查询 mysql> select count(*) from kjv where match(vtext) against(God); ---------- | count(*) | ---------- | 0 | ---------- 1 row in set (0.00 sec)mysql> select count(*) from kjv where match(vtext) against(sin); -------…

python爬虫ip封禁应对办法

目录 一、背景现象 二、准备工作 三、代码实现 一、背景现象 最近在做爬虫项目时,爬取的网站,如果发送请求太频繁的话,对方网站会先是响应缓慢,最后是封禁一段时间。一直是拒绝连接,导致程序无法正常预期的爬取数据…

【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:Embedding与Rerank模型新标杆 一、引言二、技术架构与核心创新1. 模型结构与训练策略(1)多阶段训练流程(2)高效推理设计(3)多语言与长上下文支持 2. 与经典模型的性能对比 三、…

算法竞赛阶段二-数据结构(32)数据结构简单介绍

数据结构的基本概念 数据结构是计算机存储、组织数据的方式,旨在高效地访问和修改数据。它是算法设计的基础,直接影响程序的性能。数据结构可分为线性结构和非线性结构两大类。 线性数据结构 线性结构中,数据元素按顺序排列,每…

Windows桌面图标修复

新建文本文件,粘入以下代码,保存为.bat文件,管理员运行这个文件 duecho off taskkill /f /im explorer.exe CD /d %userprofile%\AppData\Local DEL IconCache.db /a start explorer.exe echo 执行完成上面代码作用是删除桌面图标缓存库&…

13.react与next.js的特性和原理

🟡 一句话总结 React 专注于构建组件,而 Next.js 是基于 React 的全栈框架,提供了页面路由、服务端渲染和全栈能力,让你能快速开发现代 Web 应用。 React focuses on building UI components, while Next.js is a full-stack fra…

全栈监控系统架构

全栈监控系统架构 可观测性从数据层面可分为三类: 指标度量(Metrics):记录系统的总体运行状态。事件日志(Logs):记录系统运行期间发生的离散事件。链路追踪(Tracing):记录一个请求接入到结束的处理过程,主要用于排查…

云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项

引言 为认真落实工信部《工业和信息化部办公厅关于印发信息通信网络运行安全管理年实施方案的通知》,2025年5月30日中国信息通信研究院于浙江杭州举办了“云服务运行安全高质量发展交流会”,推动正向引导,巩固云服务安全专项治理成果。会上&a…

刀客doc:WPP走下神坛

一、至暗时刻? 6月11日,快消巨头玛氏公司宣布其价值17 亿美元,在全球70个市场的广告业务交给阳狮集团,这其中包括M&Ms、士力架、宝路等知名品牌。 此前,玛氏公司一直是WPP的大客户。早在今年3月,WPP就…

进行性核上性麻痹饮食攻略:营养安全双护航

进行性核上性麻痹是一种罕见的神经系统退行性疾病,主要影响患者的运动、平衡和吞咽功能。除了医学干预,科学的饮食管理也能在一定程度上减轻症状,提高生活质量。 由于患者常出现吞咽困难,食物质地的选择尤为重要。应避免干硬、大块…

阿里云可观测 2025 年 5 月产品动态

本月可观测热文回顾 文章一览: StoreView SQL,让数据分析不受地域限制 不懂 PromQL?AI 智能体帮你玩转大规模指标数据分析 DeepWiki LoongCollector:AI 重塑开源代码理解 从 o11y 2.0 说起,大数据 Pipeline 的「…

React 基础状态管理方案

1. useState useState 是 React 提供的最基本的 Hook,用于在函数组件中添加状态管理。它返回一个状态变量和一个更新状态的函数。 1.1. 使用场景 适合管理简单的状态。 适合管理组件内部的局部状态。 1.2. 示例代码 import React, { useState } from react;function Cou…