[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 主页。

广告
将在 10 秒后关闭
bannerAds