论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
Docker容器编排
Docker容器编排
农妇山泉一亩田
金牌会员
|
2023-8-10 23:24:27
|
显示全部楼层
|
阅读模式
楼主
主题
883
|
帖子
883
|
积分
2649
docker-compose
compose安装
Compose 简介
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。
Linux 上我们可以从
Github
上下载它的二进制包来使用,最新发行的版本地址。运行以下命令以下载 Docker Compose 的当前稳定版本:
curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
复制代码
要安装其他版本的 Compose,请替换 v2.20.2。
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
复制代码
创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
复制代码
测试是否安装成功:
docker-compose version
复制代码
nginx示例
docker-compose.yml配置案例如下,
官方文档
version: "3.8"
services:
nginx-demo:
image: nginx
restart: always
networks:
- network_test
volumes:
- /Users/wandaren/develop/docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /Users/wandaren/develop/docker-nginx/log:/var/log/nginx
- /Users/wandaren/develop/docker-nginx/html:/usr/share/nginx/html
environment:
APP_ENV: dev
dns: 114.114.115.115
ports:
- 80
networks:
network_test:
driver: bridge
ipam:
driver: default
config:
- subnet: 188.18.0.0/16
复制代码
启动:
# 创建
docker-compose create nginx-demo
# 加载配置并启动
docker-compose up -d nginx-demo
# 重新读取配置内容
docker-compose up -d
# 启动
docker-compose start nginx-demo
# 停止
docker-compose stop nginx-demo
# 停止并删除
docker-compose down nginx-demo
复制代码
动态扩容
docker-compose up -d --scale nginx-demo=2
复制代码
Swarm(分布式)
简介
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
支持的工具包括但不限于以下各项:
Dokku
Docker Compose
Docker Machine
Jenkins
原理
如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。
swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。
使用
1、创建 swarm 集群管理节点(manager)
初始化 swarm 集群,进行初始化的这台机器,就是集群的管理节点。
# 172.16.156.158为虚拟机本机ip
docker swarm init --advertise-addr 172.16.156.158
复制代码
以上输出,证明已经初始化成功。需要把以下这行复制出来,在增加工作节点时会用到:
docker swarm join --token SWMTKN-1-4dq96unmcsz9v0m99vapdtegt5y0kym3ths69r6enlgofbgja7-7ml2skxa3y5x5cjly8uxfwoae 172.16.156.158:2377
复制代码
2、创建 swarm 集群工作节点(worker)
分别进入两个机器里,指定添加至上一步中创建的集群,这里会用到上一步复制的内容。
3、查看集群信息
进入管理节点,执行:docker info 可以查看当前集群的信息。
docker info
复制代码
通过画红圈的地方,可以知道当前运行的集群中,有三个节点,其中有一个是管理节点。
进入管理节点,执行:docker node ls 查看集群信息:
docker node ls
复制代码
4、部署服务到集群中
注意:跟集群管理有关的任何操作,都是在管理节点上操作的。
以下例子,在一个工作节点上创建一个名为 nginx_swarm 的nginx服务,这里是随机指派给一个工作节点:
docker service create --replicas 1 -p 80:80 --name nginx_swarm nginx
复制代码
5、查看服务部署情况
查看 nginx_swarm 服务运行在哪个节点上,可以看到目前是在 wq 节点:
docker service ps nginx_swarm
复制代码
查看 nginx_swarm 部署的具体信息:
docker service inspect --pretty nginx_swarm
复制代码
6、扩展集群服务
调整节点个数
# docker service update --replicas <num> <service id/name>
docker service update --replicas 2 nginx_swarm
复制代码
服务扩展
docker service scale nginx_swarm=3
复制代码
7、滚动升级服务
以下实例,我们将介绍 redis 版本如何滚动升级至更高版本。
创建一个 3.0.6 版本的 redis。
docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6
复制代码
滚动升级 redis
docker service update --image redis:3.0.7 redis
复制代码
8、删除服务
docker service rm nginx_swarm
复制代码
9、停止某个节点接收新的任务
停止节点001
docker node update --availability drain 001
复制代码
注意
:001 状态变为 Drain。不会影响到集群的服务,只是 001 节点不再接收新的任务,集群的负载能力有所下降。
可以通过以下命令重新激活节点:
docker node update --availability active 001
复制代码
10、节点退出集群
docker swarm leave
复制代码
删除退出集群的节点
docker node rm sysn25urcm4elywoiexiov431
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
农妇山泉一亩田
金牌会员
这个人很懒什么都没写!
楼主热帖
厉害了,腾讯云云巢荣获信通院“云原生 ...
2022 春节抖音视频红包系统设计与实现 ...
数据库概述
【Redis高手修炼之路】②Redis的五大数 ...
原型设计工具比较及实践--滴爱音乐 ...
多线程(一)-两种创建线程的方式 ...
OpenHarmony和HarmonyOS有什么区别?这 ...
ABP Framework 5.3.0 版本新增功能和变 ...
Kafka原理介绍+安装+基本操作(kafka o ...
【视频】k8s套娃开发调试dapr应用 - 在 ...
标签云
存储
服务器
快速回复
返回顶部
返回列表