[Docker备忘录] 尝试在Docker上建立nginx+tomcat
前提条件
-
- CentOS7 on Vagrant (IP:192.168.33.10)
-
- docker-compose version:1.13.1:
- docker version: 1.10.2
首先,只使用nginx
#公式イメージでも良いが変更を考慮してDockerfileにて実施
FROM nginx:1.11
# Configuration for the server
server {
listen 8080;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ /\.ht {
deny all;
}
}
version: '2'
services:
nginx:
build: nginx/
hostname: ng01
ports:
- 8080:8080
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/log:/var/log/nginx
container_name: nginx01
只需要一种选择,用中文重新表达以下内容:
此时先启动,
docker-compose up -d
通过http://192.168.33.10:8080/,可以访问到nginx的主页
nginx与tomcat合并
Dockerfile 的翻译如下:
FROM tomcat:8.5
Tomcat(应用程序)在8090端口进行协作。
在当前的版本中,不需要定义links。通过nginx01容器可以ping通app/app01。
version: '2'
services:
nginx:
build: nginx/
hostname: ng01
ports:
- 8080:8080
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/log:/var/log/nginx
container_name: nginx01
app:
build: tomcat/
hostname: appserver
ports:
- 8090:8090
volumes:
- ./tomcat/conf:/usr/local/tomcat/conf
- ./tomcat/log:/usr/local/tomcat/log
container_name: app01
对nginx的conf进行修改。
# Configuration for the server
....
location / {
#以下の1行追加(container_nameのapp01でもOK)
proxy_pass http://app:8090;
index index.html index.htm;
}
....
}
将tomcat的server.xml文件中的端口从8080改为8090进行修改。
....
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
当尝试访问 http://192.168.33.10:8080/ 时,您应该能够看到 Tomcat 主页。