一、系统环境
centos 7.3最小化安装
docker 1.13.1
tomcat 9.0
mysql 5.5.57
nginx 1.10.3
二、服务器部署
1.更新系统包
yum update -y
2.安装docker
yum install -y docker
3.安装docker-compose
此处使用pip进行安装
yum -y install epel-release
yum -y install python-pip
安装docker-compose
pip install docker-compose
4.拉取相关镜像
docker pull tomcat:9.0
docker pull mysql:5.5.57
docker pull nginx:1.10.3
三、编写docker-compose.yml文件
1.创建工作目录
mkdir -p /home/website
2.编写文件
version: '2'
services:
#tomcat setting
tomcat:
container_name: web_tomcat
image: tomcat:9.0
#host port:container port
ports:
- "8080:8080"
#volumes path|host path:container path
volumes:
- ./tomcat/webapps:/usr/local/tomcat/webapps
environment:
TZ: 'Asia/Shanghai'
#connect to another container
links:
- mysql
restart: always
#mysql setting
mysql:
container_name: web_mysql
image: mysql:5.5.57
ports:
- "3306:3306"
volumes:
- ./mysql/mysql.conf.d:/etc/mysql/mysql.conf.d
- ./mysql/data:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
environment:
#Initialize the root password
MYSQL_ROOT_PASSWORD: yourpassword
TZ: 'Asia/Shanghai'
restart: always
#nginx setting
nginx:
container_name: web_nginx
image: nginx:1.10.3
ports:
- 80:80
- 443:443
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
#本地./nginx/下一定要有这个nginx.conf文件
- ./nginx/log:/var/log/nginx
- ./nginx/www:/var/www
- /etc/letsencrypt:/etc/letsencrypt
restart: always
整合以上三个文件到工作目录下的docker-compose.yml文件即可
四、修改nginx配置文件,反向代理tomcat
打开挂载目录中的nginx.conf,修改nginx.conf中的http段,增加以下配置:
upstream website{
server 127.0.0.1:8080;
}
在http段下的server段下的location段中增加以下配置:
location / {
proxy_pass http://127.0.0.1:8080;
#proxy_cookie_path /hudson/ /;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
五、生成容器,检查
在启动nginx之前一定要检查挂载配置文件的路径下,要有对应的nginx.conf文件
进入docker-compose.yml文件所在的路径下
启动命令:
docker-compose up -d #后台启动所有容器
docker-compose up -d <容器ID> #后台启动指定容器
查看状态:
docker ps -a
停止命令:
docker-compose stop #停止所有
docker-compose stop <容器ID> #停止指定容器