一、docker-compose概念:
命令“docker run”用来创建和启动一个容器,即管理单个容器,如果有多个相关联的应用容器,则需要依次分别部署。docker-compose可以用来创建启动一组相关联应用容器。它允许用户在一个模版(YAML格式文件,默认配置文件为:docker-compose.yml)中定义好一组相关联的应用容器,。一般我们把这一组应用容器称为一个项目(Project)。通过docker-compose命令来完成这个Project。
因此,docker-compose会把所管理的容器分为三层:工程(project),服务(service),容器(container)。docker-compose.yml中定义了多个依赖关系统的service和container。用户只需要编写docker-compose.yml即可。
最后,docker-compose是docker官方的应用工具
二、docker-compose安装
[root@localhost ~]# curl -L https://github.com/docker/compose/releases/download/1.18.0/run.sh > /usr/local/bin/docker-compose
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose --version
docker-compose version 1.18.0, build 8dd22a9
[root@localhost ~]#
三、实现:
1、构建nginx和tomcat容器
2、nginx和tomcat发布目录映射
3、nginx均衡tomcat
4、通过浏览器访问nginx,即可访问tomcat
- 主要是编写docker-composer.yml文件,内容如下:
services:
tomcat01:
container_name: tomcat01
image: tomcat:latest
restart: always
ports:
- 8080
tomcat02:
container_name: tomcat02
image: tomcat:latest
restart: always
ports:
- 8080
nginx:
container_name: www-nginx
image: nginx:latest
restart: always
ports:
- 80:80
volumes:
- /data/webapps/www/:/usr/share/nginx/html/
- ./default.conf:/etc/nginx/conf.d/default.conf
links:
- tomcat01
- tomcat02
- 配置nginx配置文件,增加upstream,实现均衡两台tomcat
[root@localhost www]# sed -e '/^$/d' -e '/#/d' default.conf
upstream tomcat_web {
server tomcat01:8080 weight=100 max_fails=2 fail_timeout=15;
server tomcat02:8080 weight=100 max_fails=2 fail_timeout=15;
}
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://tomcat_web;
proxy_set_header host $host;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@localhost www]#
- 用docker-compose依据yml文件启动容器,会自动下载镜像,启动容器
[root@localhost webapps]# docker-compose up -d
tomcat01 is up-to-date
tomcat02 is up-to-date
Recreating www-nginx ... done
[root@localhost webapps]#
- 浏览器输入地址测试,结果:容器成功创建启动,nginx也均衡到tomcat,这个404错误是发布目录没有文件而已。把代码放到宿主机映射的目录即可。
|