IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker compose -> 正文阅读

[系统运维]docker compose

微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例
docker compose是一种编排服务,基于python语言实现,是一个用于docker上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。
用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
解决了容器与容器之间如何管理编排的问题。

docker

stack官方可能就是用stack替代compose的,compose可以做构建,开发人员用的比较多点
compose重点是编排。这里注重编排文件就可以。
docker-compose.yml
服务(service)一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
项目(project)由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件定义。
在这里插入图片描述

server1
mkdir compose/
cd compose/
ls
vim docker-compose.yml

高可用负载均衡。haproxy keepalived+lvs
在这里插入图片描述

netstat -antlp|grep :80 #确定本机有没有80,如果没有问题的话就没问题

用自定义网络 web_net提供解析
把配置通过卷挂接到容器内,让它生效。

server2
docker images
docker run --rm -it nginx bash
ls
cd /etc/nginx/
ls -l
cd conf.d/
ls
 default.conf#怎么样使这个配置文件生效
cd ..
cat nginx.conf
cd conf.d/
cat default.conf #其中就是一些server的监听
cd ..
cat nginx.conf
将其中的内容复制下来

server1
mkdir proxy
cd prixy/
ls
\vi nginx.conf #先反向转义复制进去,否则会缩进的。
vim nginx.conf

在这里插入图片描述
访问域名www.westos.org直接定义到负载均衡器westos上
在这里插入图片描述

cd compose/
vim docker-compose.yml

在这里插入图片描述

在这里插入图片描述
使用一个web_net自定义网络,然后每个网络使用卷

server1
mkdir web1
mkdir web2
cd web1
echo web1 > index.html
cd ..
cd web2/
echo web2 > index.html
cd ..
ls
docker-compose up
刚才的语法有问题,需要在最后一行web-net加冒号
宿主机
cd /etc/hosts/
ping www.westos.org #访问域名的时候,要访问的通
server1
docker-compose ps
docker-compose start
docker-compose ps
curl 172.25.0.1
curl www.westos.org

检测

server1
docker ps
docker stop compose-web1-1
docker ps
宿主机
curl www.westos.org只能显示web2
server1
docker-compose start 会将没有启动的,自动启动起来
tree . #会显示文件的结构
server1
docker-compose down #删除之前做的实验
docker ps -a
cd 
cd harbor/
./install.sh --with-chartmuseum #这个脚本可以自动拉集群
docker-compose ps
server2
cd #新建docker集群,只需要两条命令
docker swarm init #初始化
docker node ls
server3

在这里插入图片描述

server2
docker node ls

需要建一个内有仓库,外部仓库比较慢,会影响到部署效率

server1
cd /etc/docker/
ls
cat daemon.json
ls

server2
cd /etc/docker/
ls
scp -r daemon.json certs.d/ server3:/etc/docker/
scp -r daemon.json certs.d/ server4:/etc/docker/
server3/4
systemctl daemon-reload
systemctl reload docker
docker info
vim /etc/hosts

在这里插入图片描述
最后一行删除

server4
docker images
docker pull busybox

server3
cd /etc/sysctl.d/
ls
scp docker.conf server4:/etc/sysctl.d/
server4
systemctl --system
docker info
docker pull busybox #这里若出现仓库问题

server1
cd harbor/
docker-compose down
ls
./prepare #把这个脚本清理一下
ls
df -h /
去掉扫描功能不让磁盘增加过快。
vim docker-compose.yml
rm -f docker-compose.yml #删除这个文件
ls
docker volume ls
docker volume prune
docker volume ls
ls
cd /data
ls
cp -r certs/ ~#证书不能被清理
rm -fr *
ls
cp -r ~/certs/ . #将之前的证书拷过来
ls
cd
cd harbor/
ls
./install.sh --with-chartmuseum
docker push reg.westos.org/library/busybox:latest
docker push reg.westos.org/library/nginx:latest
server4
docker pull reg.westos.org/library/busybox#也可以不必打全键,docker pull busybox
#删除镜像 docker rmi reg.westos.org/library/busybox
cd
docker images
server3
docker pull busybox
server2
docker pull busybox
docker node ls #检测节点状态
docker service ls
在集群当中部署服务,以下是命令行方式
docker service create --name webservice -p 80:80 --replicas 3 nginx
docker service ls
server3
docker ps

server1做仓库,任何访问节点都可以做集群。

宿主机
curl 172.25.0.2
server2
docker service rm webservice
docker service ls
server1
docker search myapp
docker search ikubernetes
docker pull ikubernetes/myapp:v1
docker pull ikubernetes/myapp:v2
docker tag ikubernetes/myapp:v1 reg.westos.org/library/myapp:v1 #把镜像全扔到仓库中
docker tag ikubernetes/myapp:v2 reg.westos.org/library/myapp:v2 #让所有集群下载镜像时全到仓库中
docker push reg.westos.org/library/myapp:v1
docker push reg.westos.org/library/myapp:v2
server2
docker service create --name webservice -p 80:80 --replicas 3 myapp:v1
宿主机
curl 172.25.0.2/hostname.html #访问集群中任何一个节点都是负载均衡的

并且副本数可以随时增加或减少

server2
docker service scale webservice=6
docker service ls
docker service ps webservice
不要的时候就可以把webservice回收掉
docker service rm webservice
docker service ps webservice

问题:对于集群配置目录

宿主机
cd docker/
ls
cd supervisor/
cd ..
cd pub/images/
ls
ll visualizer.tar#对于docker集群配置图形化

代码在github.com,搜索visualizer.tar

server1
cd
docker node ls#这个指令只能在管理端上运行,其他节点不可以
宿主机
docker pull dockersamples/visualizer #先把镜像拉下来,再长传到私有仓库
docker tag dockersamples/visualizer:latest reg.westos.org/library/visualizer:latest
docker push reg.westos.org/library/visualizer:latest

在这里插入图片描述

server2
docker service ls
docker service create --name webservice -p 80:80 --replicas 3 myapp:v1
docker service scale webservice=20

在网页上搜172.25.0.2,出现以下则为成功
在这里插入图片描述
在这里插入图片描述
viz是监控

server2
docker service updata --image myapp:v2 --updata-parallelism 2 --updata-delay 2s webservice 
#--updata-parallelism 每次更新多少个。--updata-delay每隔多长时间更新。
宿主机
curl 172.25.0.2
server2
docker service rollback webservice #回滚,回到之前的镜像
server3假设docker引擎出问题了,若3出问题了,便会均分到其他两个节点上
systemctl stop docker
docker ps
恢复的话
systemctl start docker
docker ps
isosize

写成文件的形式

server2
docker service rm webservice
docker service rm viz
docker service ls
cd
vim docker-compose.yml

在这里插入图片描述
在这里插入图片描述

server3
docker network ls #网络,如果不定义网络,就用节点自带的
server2
docker stack deploy -c docker-compose.yml mycluster #在集群当中,用docker stack把docker-compose替换掉了
docker service ls
docker service ps mycluster_webservice
docker service ps mycluster_visualizer
当不用的时候
docker stack rm mycluster
docker node ls
docker node promote server3升级
#docker node demote server2降级

在除开leader所有节点上执行离开集群
docker swarm leave
在leader上
docker node rm server2
docker node ls
在管理端,整个集群就废了
docker swarm leave --force

体量越大,调度越慢

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:16:32  更:2022-05-10 12:19:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:51:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码