Docker - Compose的使用
# 一、服务编排
服务编排:按照一定的业务规则批量管理容器
微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启动和停止,那么维护的工作量就会很大。
比如这些工作:
- 要从
Dockerfile build image
或者去dockerhub
拉取image
- 要创建多个
container
- 要管理这些
container
(启动停止删除)
这时候需要使用官方推出的服务编排
# 二、Docker Compose
Docker Compose
是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止
使用步骤:
- 利用
Dockerfile
定义运行环境镜像 - 使用
docker-compose.yml
定义组成应用的各服务(启动顺序、关联关系等) - 运行
docker-compose up
启动应用
# 1、安装
如果使用的是 Docker Desktop (opens new window),那就不需要再额外安装 Compose
了,因为它已经包含了 Docker Compose
。
下面是 Linux
系统下安装 Compose
的方式
# 以编译好的二进制包方式安装到Linux系统中
$ curl -L https://github.com/docker/compose/releases/download/1.28.6/run.sh > /usr/local/bin/docker-compose
# 设置文件可执行权限
$ chmod +x /usr/local/bin/docker-compose
# 查看版本信息(-v 或 --version 都可以)
$ docker-compose --version
$ docker-compose -v
# 2、卸载
# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
# 3、实战
先来编写配置文件,新建一个 docker-compose.yml
文件,文件名是固定的
touch docker-compose.yml
这里我用 VSCode
打开进行编辑
code docker-compose.yml
文件内容:
version: '3'
services:
nginx: # 服务名字自行定义
image: nginx # 指定通过nginx该镜像进行启动,这里可以指定镜像的版本号,如果不指定,默认为latest
ports: # 端口映射,即 -p 参数,将宿主机的80端口映射到容器的80端口
- 8090:80
links: # 指明当前服务可以访问到jenkins这个服务
- jenkins
volumes: # 目录映射,即 -v 参数,(宿主机目录:容器目录)
- ~/data/lxf/nginx/conf.d:/etc/nginx/conf.d
jenkins: # 服务名字自行定义
image: jenkins
expose: # 暴露指定的端口
- "8080"
- "5000"
创建 ~/data/lxf/nginx/conf.d
目录,并进入该目录
mkdir -p ~/data/lxf/nginx/conf.d
cd ~/data/lxf/nginx/conf.d
在该目录中创建一个 conf
文件,比如 lxf.conf
,文件内容如下
server {
listen 80;
access_log off;
location / {
proxy_pass http://jenkins:8080;
}
}
配置反向代理,当访问 80
端口时会反向代理到 http://jenkins:8080
,这里的 jenkins
就是上述 docker-compose.yml
文件中 links
指定的 jenkins
在 docker-compose.yml
文件所在目录,使用 docker-compose
启动容器
# -d: 后台启动
docker-compse up [-d]
测试访问
127.0.0.1:8090
或
本机ip:8090
# 三、引用
- 01
- Flutter - 危!3.24版本苹果审核被拒!11-13
- 02
- Flutter - 轻松搞定炫酷视差(Parallax)效果09-21
- 03
- Flutter - 轻松实现PageView卡片偏移效果09-08