新手入门 6. Docker 服务编排
一、服务编排概念
服务编排:按照一定的业务规则批量管理容器。
二、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