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"; } } }
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]#