Author:Gorit
Refer:B站狂神说
2021年发表博文: 3/50
没有学过 Dokcer 的同学,可以先看这篇 Docker 基础
传统方式打包项目:
使用 Docker Compose 来轻松高效的管理容器 定义运行多个容器
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features.
Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases.
Using Compose is basically a three-step process:
使用步骤
Dockerfile
so it can be reproduced anywhere. docker-compose.yml
so they can be run together in an isolated environment. docker-compose up
and Compose starts and runs your entire app. 作用:项目编排
Compose 是 Docker 官方开源项目,需要安装!!!
version: "3.9" # optional since v1.27.0
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
Compose: 重要概念
# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 设置权限
sudo chmod +x /usr/local/bin/docker-compose
安装好之后,在shell 窗口输入
docker-compose --version,可以看到安装信息就可以了
官网做了一个统计页面访问次数的 python 应用,用到了
docker-compose up # 启动
docker-compose down # 停止
docker-compose stop # 暴力停止
流程:
、docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
composetest_web latest e7de448646d1 17 minutes ago 196MB
python 3.7-alpine 72e4ef8abf8e 29 hours ago 41.1MB
redis alpine c678242f9116 46 hours ago 31.6MB
docker-compose
以前都是单个 docker run 启动容器
docker-compose,通过 docker-compose 编写 YAML 配置文件,可以通过 compose 一键启动所有服务,停止
Docker 小结
docker-compose
# 3 层
version: "" # 版本
services: # 服务
服务1:web
# 服务配置
images
build
network
...
服务2: redis
...
服务3: redis
# 从下网上才为顺序
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
https://docs.docker.com/compose/wordpress/
博客
前台启动
docker -d
docker-compose -d
一切都很简单
小结:
未来项目中只要有 docker-compose 文件,按照这个规则,启动编排容器
公司:docker-compose 直接启动
网上开源项目:docker-compose
假如项目要重新部署打包: docker-compose up --build # 重新构建
工具、服务、容器
项目 compose:三层
搭建集群服务 (k8s)
购买服务器 4台服务器
安装 Docker
xshell 同步操作
目标,双主,双重
双主双从:假设一个节点挂了!其他节点是否可以用!
Raft协议:保证大多数存活才可以用,只要 > 1,集群至少大于 3 台。
Raft协议保证大多数节点都可用,高可用
弹性,扩缩容,集群
以后告别了 docker run
docker-compose up! 启动一个项目,单机!
集群:swarm:docker service
容器 => 服务
redis! = 3 份,容器!
集群:高可用,web -> redis (3台,在不同机器)
服务:集群中任意节点都可以访问,服务可以有多个副本动态扩缩容实现高可用
弹性:扩缩容
10台!10000台! 卖给别人! 虚拟化
服务的高可用,任何企业,云计算
docker swarm 其实不难
会搭建集群,会启动服务,动态管理容器就可以了
swarm
集群的管理和编号,docker 可以初始化一个 swarm集群,其他节点可以假如(管理,工作者)
Node
就是一个 docker 节点,多个节点就组成了一个 网络集群(管理,工作者)
Service
任务,可以在管理节点或者工作节点进行,核心:用户访问
Task
容器内的命令,细节任务!
docker network ls
docker-compose 单机部署项目
docker stack 部署,集群部署
# 单机
docker-compose up -d wordpress.yaml
# 集群
docker stack deploy wordpress.yaml
# docker-cmopose
安全!配置密码,证书!
Go 语言
Docker 是 Go 开发的
并发语言
go 语言学习!!!
云应用
k8s!