docker-compose 编排的 java webapps 和 nginx 容器,支持多应用,开箱即用
使用 docker-compose 编排 java webapps 和 nginx 容器,支持多应用
nginx、java 部分配置优化如下,请根据机器配置自行调整,相关文件及目录已挂载
- nginx.conf
- client_max_body_size 1024m,大文件上传
- proxy_read_timeout 240s,慢脚本支持 for poxy(java etc.)
- fastcgi_read_timeout 240s,慢脚本支持 for fastcgi(php-fpm etc.)
- worker_processes 4
- gzip 相关已开启
- log 日志重定向
- java
- 使用 -Djava.security.egd=file:/dev/./urandom 选项,优化随机数产生效率,加快 app 启动
yum-config-manager —add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
2. 安装 docker-compose
```shell
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
配置容器日志
# registry-mirrors,设置镜像源
# graph,设置 docker 运行时根目录,默认是 /var/lib/docker
# log-x,日志相关配置
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"graph": "/data/var/lib/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "1"
}
}
EOF
配置 nginx 日志切割
# chmod +x sh/docker_nginx_log_cutting.sh
# crontab
0 0 * * * /data/java-nginx/sh/docker_nginx_log_cutting.sh nginx_nginx_1 /data/java-nginx/nginx/logs/ &> /dev/null
启动 docker
```shell
systemctl enable docker # 开机自启
systemctl start docker # 启动
docker -v
6. 启动 java-nginx
```shell
# 1.启动 java web app
# - cd 到 wepapps 目录,新建 ${appName} 目录,拉取 ${appName} jar|war 包文件
# - 编写 Dockerfile、docker-compose.yml
# - 启动 ${appName} 容器
docker-compose up -d --build
# 多个 apps 重复步骤 1
# 2.启动 nginx
# - 新增 nginx/conf.d/${appName}.conf,配置反向代理虚拟主机
# - 新增 ningx/logs/${appName},应用 nginx 日志目录
# - 启动 nginx 容器
docker-compose up -d --build