docker服务版本:
version 18.09.0
nginx服务版本:
version: nginx/1.15.10
redis服务版本:
version: redis/5.0.3
tomcat服务版本:
version: tomcat/8.5.30
JDK服务版本:
alpine-oraclejdk8

二、安装docker服务

配置阿里yum源并安装docker

# yum install docker -y

三、项目部署

1、准备工作

拉取如下镜像

# docker images

[root@localhost ~]# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
nginx                                                  1.15.10             2bcb04bdb83f        3 months ago        109MB
tomcat                                                 8.5.30              38bdcf7a367c        14 months ago       546MB
redis                                                  latest              82629e941a38        6 months ago        95MB
huanwei/alpine-oraclejdk8                              latest              28e66d63b8a4        2 years ago         167MB

拉取命令如下:

# docker pull docker.io/huanwei/alpine-oraclejdk8

# docker pull daocloud.io/library/tomcat:8.5.30

# docker pull daocloud.io/library/nginx:1.15.10

# docker pull daocloud.io/library/redis:5.0.3

镜像重命名

# docker tag daocloud.io/library/nginx:1.15.10 nginx:1.15.10

# docker tag daocloud.io/library/tomcat:8.5.30 tomcat:8.5.30

删除旧的镜像名

# docker rmi daocloud.io/library/nginx:1.15.10

# docker rmi daocloud.io/library/tomcat:8.5.30

软件版本说明:
nginx version: nginx/1.15.10
redis version: redis/5.0.3
tomcat version: tomcat/8.5.30
alpine-oraclejdk8

2、创建两个tomcat容器

创建一个测试tomcat容器,用于拷贝tomcat原文件

# docker run --name test -d -i -t tomcat:8.5.30 /bin/bash

[root@localhost docker-server]# docker run --name test -d -i -t tomcat:8.5.30 /bin/bash
1287b583d3b7b85a65ea4d80640124fc5dbd1905d0fc5c33ef05e0ba9872c681

进入测试容器熟悉tomcat安装位置

# docker exec -it test bash

[root@localhost docker-server]# docker exec -it test bash
root@1287b583d3b7:/usr/local/tomcat#
root@1287b583d3b7:/usr/local/tomcat# ls
LICENSE  NOTICE  RELEASE-NOTES  RUNNING.txt  bin  conf  include  lib  logs  native-jni-lib  temp  webapps  work
root@1287b583d3b7:/usr/local/tomcat#
root@1287b583d3b7:/usr/local/tomcat# pwd
/usr/local/tomcat
root@1287b583d3b7:/usr/local/tomcat#
root@1287b583d3b7:/usr/local/tomcat# cd ..
root@1287b583d3b7:/usr/local#
root@1287b583d3b7:/usr/local# ls
bin  etc  games  include  lib  man  sbin  share  src  tomcat
root@1287b583d3b7:/usr/local#
root@1287b583d3b7:/usr/local# exit
exit

拷贝容器的tomcat文件用于后期的tomcat映射挂载

# docker cp test:/usr/local/tomcat /home/tjsp/

[root@localhost docker-server]# docker cp test:/usr/local/tomcat /home/tjsp/
[root@localhost docker-server]# cd ..
[root@localhost tjsp]# ls
docker-server  tomcat
[root@localhost tjsp]#
[root@localhost tjsp]# cd tomcat/
[root@localhost tomcat]#
[root@localhost tomcat]#
[root@localhost tomcat]# ls
LICENSE  NOTICE  RELEASE-NOTES  RUNNING.txt  bin  conf  include  lib  logs  native-jni-lib  temp  webapps  work
[root@localhost tomcat]#

复制tomcat文件用于映射挂载tomcat1服务

[root@localhost tjsp]# cp -r tomcat/ tomcat1
[root@localhost tjsp]#
[root@localhost tjsp]#
[root@localhost tjsp]# ls
docker-server  tomcat  tomcat1
[root@localhost tjsp]#

创建容器

# docker run -p 8081:8080 --name tomcat1 -h Front-end1 -v /home/tjsp/tomcat1:/usr/local/tomcat -d tomcat:8.5.30

# docker run -p 8082:8080 --name tomcat2 -h Front-end2 -v /home/tjsp/tomcat2:/usr/local/tomcat -d tomcat:8.5.30

[root@localhost tjsp]# docker run -p 8081:8080 --name tomcat1 -h Front-end1 -v /home/tjsp/tomcat1:/usr/local/tomcat -d tomcat:8.5.30
d41f7b69ebbf9717629b220907fc7c88e8d106f2b99a805c6b0465b4bc49f484
[root@localhost tjsp]#
[root@localhost tjsp]# docker run -p 8082:8080 --name tomcat2 -h Front-end2 -v /home/tjsp/tomcat2:/usr/local/tomcat -d tomcat:8.5.30
78b5482a0a9546f5355fccb8f28bf4e08751f58e74b8a3b66af36a775ae31788
[root@localhost tjsp]#

查看运行状态

# docker ps

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
78b5482a0a95        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8082->8080/tcp   tomcat2
d41f7b69ebbf        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8081->8080/tcp   tomcat1
1287b583d3b7        tomcat:8.5.30                                          "/bin/bash"              About an hour ago   Up About an hour    8080/tcp                 test

添加office服务,运行一个tomcat跑war包

# cp -r tomcat tomcat3

[root@localhost ~]# cd /home/tjsp/
[root@localhost tjsp]#
[root@localhost tjsp]# ls
docker-server  nginx  tomcat  tomcat1  tomcat2
[root@localhost tjsp]#
[root@localhost tjsp]# cp -r tomcat tomcat3
[root@localhost tjsp]#
[root@localhost tjsp]# ls
docker-server  nginx  tomcat  tomcat1  tomcat2  tomcat3

创建一个tomcat容器

# docker run -p 8086:8080 --name tomcat3 -h tjsp_office -v /home/tjsp/tomcat3:/usr/local/tomcat -d tomcat:8.5.30

[root@localhost tjsp]# docker run -p 8086:8080 --name tomcat3 -h tjsp_office -v /home/tjsp/tomcat3:/usr/local/tomcat -d tomcat:8.5.30
9fe494bf43bc446f9f021d19e25ec5e030e6031c8fc65dcc8f08609f3b4bc946
[root@localhost tjsp]#
[root@localhost tjsp]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
9fe494bf43bc        tomcat:8.5.30                                          "catalina.sh run"        6 seconds ago       Up 5 seconds        0.0.0.0:8086->8080/tcp   tomcat3

3、创建nginx容器

创建一个测试nginx容器,用于拷贝nginx原文件

# docker run --name nginx_test -h nignx1.15.10 -d nginx:1.15.10

# docker cp nginx_test:/etc/nginx /home/tjsp/

[root@localhost tjsp]# docker run --name nginx_test -h nignx1.15.10 -d nginx:1.15.10
0b02f6f222ef38aa2f39fa7ac5d5a588b5df24bb6d7e28fba90aa55b0a4bf82e
[root@localhost tjsp]#
[root@localhost tjsp]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
0b02f6f222ef        nginx:1.15.10                                          "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        80/tcp                   nginx_test
78b5482a0a95        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8082->8080/tcp   tomcat2
d41f7b69ebbf        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8081->8080/tcp   tomcat1
1287b583d3b7        tomcat:8.5.30                                          "/bin/bash"              About an hour ago   Up About an hour    8080/tcp                 test
[root@localhost tjsp]#
[root@localhost tjsp]# docker cp nginx_test:/etc/nginx /home/tjsp/
[root@localhost tjsp]#
[root@localhost tjsp]# ls
docker-server  nginx  tomcat  tomcat1  tomcat2
[root@localhost tjsp]#
[root@localhost tjsp]# cd nginx/
[root@localhost nginx]#
[root@localhost nginx]# ls
conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
[root@localhost nginx]#

创建容器

# docker run --name nginx_tjsp -h nignx1.15.10 -p 7080:80 -v /home/tjsp/nginx:/etc/nginx/ -d nginx:1.15.10

[root@localhost nginx]# docker run --name nginx_tjsp -h nignx1.15.10 -p 7080:80 -v /home/tjsp/nginx:/etc/nginx/ -d nginx:1.15.10
39e65baa524a62e2a07ad0ccc035baf829f3f9736148529b79d18452011bf390
[root@localhost nginx]#
[root@localhost nginx]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
39e65baa524a        nginx:1.15.10                                          "nginx -g 'daemon of…"   4 seconds ago       Up 3 seconds        0.0.0.0:7080->80/tcp     nginx_tjsp
0b02f6f222ef        nginx:1.15.10                                          "nginx -g 'daemon of…"   3 minutes ago       Up 3 minutes        80/tcp                   nginx_test
78b5482a0a95        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8082->8080/tcp   tomcat2
d41f7b69ebbf        tomcat:8.5.30                                          "catalina.sh run"        About an hour ago   Up About an hour    0.0.0.0:8081->8080/tcp   tomcat1
1287b583d3b7        tomcat:8.5.30                                          "/bin/bash"              About an hour ago   Up About an hour    8080/tcp                 test

修改nginx配置文件

# vi /home/tjsp/nginx/nginx.conf

配置文件如下:

user  root;
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
   
    ## Proxy
    upstream tjsp_client_proxy {
         server 192.168.2.207:8081 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.2.207:8082 weight=1 max_fails=2 fail_timeout=30s;
    }
    
    
    upstream tjsp_server_proxy {
         server 192.168.2.207:8083 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.2.207:8084 weight=1 max_fails=2 fail_timeout=30s;
         server 192.168.2.207:8087 weight=1 max_fails=2 fail_timeout=30s;
    }
    
    
    upstream etl_server_proxy {
         server 192.168.2.207:8085 weight=1 max_fails=2 fail_timeout=30s;
         #server 172.17.8.20:8086 weight=1 max_fails=2 fail_timeout=30s;
    }
    
    upstream exp_server_proxy {
         server 192.168.2.207:8086 weight=1 max_fails=2 fail_timeout=30s;
    }
    
    server {
        listen       80;
        server_name localhost;
        error_page   500 502 503 504  /50x.html;
    location / {
                root html;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
                index  index.html index.htm;
                 
                }
    location /tjsp {
            root html;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
            index  index.html index.htm;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
            add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
            proxy_pass  http://tjsp_client_proxy/tjsp;
            #try_files $uri $uri/ /main
            proxy_redirect off; 
            proxy_set_header Host  $http_host;
            proxy_set_header Cookie $http_cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            client_max_body_size  300m;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
         location /a_ssets {
                root html;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
                index  index.html index.htm;
                add_header Access-Control-Allow-Origin *;
                add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
                add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
                proxy_pass  http://tjsp_client_proxy/assets;
                        #try_files $uri $uri/ /main
                proxy_redirect off;
                proxy_set_header Host  $http_host;
                proxy_set_header Cookie $http_cookie;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                client_max_body_size  300m;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
            }
        location /zjb {
            root   html;
            index  index.html index.htm;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
            add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
            proxy_pass  http://tjsp_server_proxy/;
            proxy_redirect off;
            proxy_set_header Host  $http_host;
            proxy_set_header Cookie $http_cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            client_max_body_size  300m;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
         }
      
        location /etl {
            root   html;
            index  index.html index.htm;
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
            add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
            proxy_pass  http://etl_server_proxy/;
            proxy_redirect off;
            proxy_set_header Host  $http_host;
            proxy_set_header Cookie $http_cookie;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            client_max_body_size  300m;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
       }
          location /exp {
                        root   html;
                        index  index.html index.htm;
                        add_header Access-Control-Allow-Origin *;
                        add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
                        add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
                        proxy_pass  http://exp_server_proxy/office;
                        proxy_redirect off;
                        proxy_set_header Host  $http_host;
                        proxy_set_header Cookie $http_cookie;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        client_max_body_size  300m;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
           }
           location /exl {
                        root   html;
                        index  index.html index.htm;
                        add_header Access-Control-Allow-Origin *;
                        add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
                        add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
                        proxy_pass  http://etl_server_proxy/;
                        proxy_redirect off;
                        proxy_set_header Host  $http_host;
                        proxy_set_header Cookie $http_cookie;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $scheme;
                        client_max_body_size  300m;
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
           }

        

    }  
       
}  
View Code

4、创建redis容器

说明:

redis的密码为123456

保护模式已经关闭

集群模式未开启

# docker run --name redis -h redis_tjsp -p 6379:6379 -d redis redis-server --requirepass "123456" --appendonly yes --protected-mode no

进入redis查看

# docker exec -it redis bash

[root@localhost tjsp]# docker run --name redis -h redis_tjsp -p 6379:6379 -d redis redis-server --requirepass "123456" --appendonly yes --protected-mode no
7626b4b8f3c1b2f8161341209f159167876cdc3fee8b3b90c180770dc426f3bd
[root@localhost tjsp]#
[root@localhost tjsp]# docker exec -it redis bash
root@redis_tjsp:/data#
root@redis_tjsp:/data# ls
appendonly.aof
root@redis_tjsp:/data#
root@redis_tjsp:/data# exit
exit
[root@localhost tjsp]#

相关文章: