网站建设 招标公告,效果图网站推荐大全面包砖,长沙工程招标公司,商业综合体设计Docker Compose
简介#xff1a;
比如有100个微服务#xff0c;不需要手动启动每一个#xff0c;可以使用docker compose定义运行多个容器#xff0c;高效管理化。
定义、运行多个容器
YAML file配置文件
single command 命令
写docker-compose.yaml
docker-compose …Docker Compose
简介
比如有100个微服务不需要手动启动每一个可以使用docker compose定义运行多个容器高效管理化。
定义、运行多个容器
YAML file配置文件
single command 命令
写docker-compose.yaml
docker-compose up 启动项目
Compose
version: 3 # optional since v1.27.0
services:web:build: .ports:- 5000:5000volumes:- .:/code- logvolume01:/var/loglinks:- redisredis:image: redis
volumes:logvolume01: {}配置web连接到redis会先启动redis再启动web应用
官方下载compose
curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose国内镜像下载
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose#授权
chmod x /usr/local/bin/docker-compose构建个应用在/root/doc/compose_test
1、应用app.py
2、Dockerfile构建镜像
3、docker-compose.yaml
4、docker-compose up 启动
#可以先docker-compose build后再 up启动
启动后流程
ctrlc停止退出后可以重新docker-compose up启动 默认的服务名文件名_服务名_num
网络规则compose自动生成了一个网络项目中的内容都在同一个网络中通过域名访问 如果在同一个域名下可以直接通过域名进行访问比如redis服务直接通过redis域名访问而不需要通过ip如下 yaml规则
docker-compose.yaml核心
version: #版本
services: #服务服务1: web#服务配置imgaesbuildnetwork....服务2: redis..........compose 官方文档
https://docs.docker.com/compose/compose-file/compose-file-v3/#command
搭建博客
官方文档地址
https://docs.docker.com/samples/wordpress/
version: 3services:db:image: mysql:5.7volumes:- db_data:/var/lib/mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpresswordpress:depends_on:- dbimage: wordpress:latestvolumes:- wordpress_data:/var/www/htmlports:- 8000:80restart: alwaysenvironment:WORDPRESS_DB_HOST: dbWORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressWORDPRESS_DB_NAME: wordpress
volumes:db_data: {}wordpress_data: {}进入yaml的文件夹docker-compose up 启动项目
后台启动
docker-compose up -d
Docker Swarm
集群搭建
初始化节点
docker swarm init --advertise-addr 192.168.148.136 #加入节点
docker swarm join
#在主节点主机执行下面的命令可以获得加入成为主节点的命令然后将此命令在对应的机器上执行加入。
docker swarm join-token manager #获取主节点加入的命令
下面的命令就是生成的 步骤
1、生成主节点
2、加入管理者、worker
目标双主双从一般至少三个主节点
Raft协议
双主双从假设一个节点挂了其他节点是否可以用
Raft协议保证大多数节点存活才可以用。
如果将主节点挂掉一个会导致主节点的数量过少而不能使用集群 docker1主节点关闭重启后由原来的leader变成了reachable #在对应节点上执行会离开集群
docker swarm leave 需要保证有两个主节点存在才能使用 集群可以用3个主节点 ,大于1台管理节点存活
使用docker service 进行集群的操作
#类似docker run
docker service create -p 8888:80 --name mynginx nginxdocler run 容器启动不具有扩缩容器功能
docker service 集群启动可以扩缩容docker service 启动的时候虽然是在docker1服务器上启动但是容器可能启动在集群的docker3中
docker service update --replicas 10 mynginx
#创建10个mynginx的副本。
docker service update --replicas 10 mynginx
#回滚到剩下1个节点#动态扩缩容
docker service scale mynginx5#集群移除服务
docker service rm mynginx swarm是小型的k8s。
只要在集群的某一台服务器上启动一个服务所有集群里面机子都可以访问得到。
概念总结
swarm
集群的管理和编号docker可以初始化一个swarm集群其他节点可以加入管理、工作者
Node
就是一个docker节点多个节点就组成了一个网络集群管理、工作者
Service
任务可以在管理节点或工作节点来运行核心用户需要进行访问的服务。
使用docker service 进行操作
Task
容器内的命令细节任务
replicas 4 表示四个副本可以进行均衡调度 docker stack
docker-compose 单机部署
docker stack 集群部署
#单机
docker-compose up -d wordpress.yaml#集群
docker stack deploy workpress.yamldocker secret
安全证书、密码等
docker config
配置