一、服务编排概念
服务编排:按照一定的业务规则批量管理容器。
二、Docker Compose
2.1 安装 Docker Compose
centos7 系统安装
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
ubuntu18.04 系统安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose version
2.2 卸载 Docker Compose
# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
2.3 使用docker compose编排nginx+springboot项目
mkdir ~/docker-compose
cd ~/docker-compose
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
参数说明:
version
:docker-compose 的版本。services
:表示你要启动的服务。
此处的 nginx 和 app 可以自定义名字。
ports
:端口映射。links
:当前的nginx项目,可以访问到 app 项目。volumes
:数据卷。expose
:暴露的端口。
mkdir -p ./nginx/conf.d
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
参数说明:
listen 80
:监听 80 端口。access_log off
:关闭日志。proxy_pass [http://app:8080](http://app:8080)
:反向代理的地址- 如果要访问 80 端口,那么 nginx 的反向代理会直接去
[http://app:8080](http://app:8080)
这个地方 - 此处的 app 为上面 docker-compose.yml 文件中的
- 如果要访问 80 端口,那么 nginx 的反向代理会直接去
docker-compose up
http://你云服务器ip/hello
若要停止容器:
docker-compose down
三、扩展
以下使用 ubuntu18.04 操作系统
修改 IP 和 DNS
有时候演示代码会采用多虚拟机模拟分布式场景,为了防止 IP 冲突、无法联网等问题,需要预先设置号主机名、IP、DNS配置
修改主机名
- 修改
cloud.cfg
防止重启后主机名还原
vi /etc/cloud/cloud.cfg
# 该配置默认为 false,修改为 true 即可
preserve_hostname: true
- 修改主机名
# 修改主机名
hostnamectl set-hostname deployment # 修改主机名为 deployment
# 配置 hosts
cat >> /etc/hosts