一.Docker服务编排
1.服务编排概念
2.Docker Compose
(1)概述
(2)安装使用
步骤:
-
根据自己电脑系统型号在github上下载docker-compose对应文件,我的是centos7下载Linux64位放到/usr/local/bin下并在将其改名为docker-compose
-
如果下载不下载需要手动下载和存放:网址: https://github.com/docker/compose/releases/tag/1.14.0-rc2 页面最后有下载
-
设置文件可执行权限
-
查看是否安装成功也就是查看版本信息
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限
chmod +x /usr/local/bin/docker-compose
# 查看版本信息
docker-compose -version
3.案例
(1)要求:使用docker compose编排nginx+springboot项目
(2)步骤:
-
在root目录下建立docker-compose目录: [root@ustc-wzh ~]# mkdir docker-compose
-
进入docker-compose目录创建docker-compose.yml文件: [root@ustc-wzh docker-compose]# vim docker-compose.yml
-
docker-compose.yml文件:
version: '3' services: nginx: image: nginx ports: - 80:80 links: - app volumes: - ./nginx/conf.d:/etc/nginx/conf.d app: image: springboot-app:1.0 expose: - "8080"
-
解释:
-
总体上看services里面先让nginx容器启动再让app容器启动
-
nginx容器使用本地docker镜像nginx的latest版本(不写版本默认就是latest版本)
-
设置nginx容器端口80:80,设置nginx反向代理容器app,也就是下面设置的app容器
-
设置nginx容器的数据卷为Linux的当前目录下的nginx/conf.d目录与nginx容器的etc下的nginx下的conf.d目录,(我们需要的Linux当前目录为docker-compose目录)
-
设置app容器使用本地docker镜像springboot-app:1.0,内部端口为8080
-
到时候nginx容器80端口会反向代理app容器8080端口
-
-
在docker-compose目录下建立两级目录nginx/conf.d: [root@ustc-wzh docker-compose]# mkdir -p ./nginx/conf.d 用来存放配置文件
-
进入conf.d目录创建springboot_docker-compose.conf: [root@ustc-wzh conf.d]# vim springboot_docker-compose.conf 配置反向代理
-
springboot_docker-compose.conf:
server { listen 80; access_log off; location / { proxy_pass http://app:8080; } }
解释:nginx容器作为服务器监听80端口,代理app容器的8080端口
-
在docker-compose目录下使用docker-compose启动容器: [root@ustc-wzh docker-compose]# docker-compose up ,为什么要在docker-compose目录下呢,这是因为docker-compose.yml文件数据卷的位置绑定为此处目录下的nginx目录下的conf.d目录
-
执行成功访问:IP地址:/路由地址 (省略默认端口号80)