docker实战部署Javaweb项目
一、部署环境说明
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. 2bcb04bdb83f months ago 109MB
tomcat 8.5. 38bdcf7a367c months ago 546MB
redis latest 82629e941a38 months ago 95MB
huanwei/alpine-oraclejdk8 latest 28e66d63b8a4 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.
redis version: redis/5.0.
tomcat version: tomcat/8.5.
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. /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 : --name tomcat1 -h Front-end1 -v /home/tjsp/tomcat1:/usr/local/tomcat -d tomcat:8.5.
d41f7b69ebbf9717629b220907fc7c88e8d106f2b99a805c6b0465b4bc49f484
[root@localhost tjsp]#
[root@localhost tjsp]# docker run -p : --name tomcat2 -h Front-end2 -v /home/tjsp/tomcat2:/usr/local/tomcat -d tomcat:8.5.
78b5482a0a9546f5355fccb8f28bf4e08751f58e74b8a3b66af36a775ae31788
[root@localhost tjsp]#
查看运行状态
# docker ps
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78b5482a0a95 tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat1
1287b583d3b7 tomcat:8.5. "/bin/bash" About an hour ago Up About an hour /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 : --name tomcat3 -h tjsp_office -v /home/tjsp/tomcat3:/usr/local/tomcat -d tomcat:8.5.
9fe494bf43bc446f9f021d19e25ec5e030e6031c8fc65dcc8f08609f3b4bc946
[root@localhost tjsp]#
[root@localhost tjsp]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9fe494bf43bc tomcat:8.5. "catalina.sh run" seconds ago Up seconds 0.0.0.0:->/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.
0b02f6f222ef38aa2f39fa7ac5d5a588b5df24bb6d7e28fba90aa55b0a4bf82e
[root@localhost tjsp]#
[root@localhost tjsp]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b02f6f222ef nginx:1.15. "nginx -g 'daemon of…" seconds ago Up seconds /tcp nginx_test
78b5482a0a95 tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat1
1287b583d3b7 tomcat:8.5. "/bin/bash" About an hour ago Up About an hour /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 : -v /home/tjsp/nginx:/etc/nginx/ -d nginx:1.15.
39e65baa524a62e2a07ad0ccc035baf829f3f9736148529b79d18452011bf390
[root@localhost nginx]#
[root@localhost nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39e65baa524a nginx:1.15. "nginx -g 'daemon of…" seconds ago Up seconds 0.0.0.0:->/tcp nginx_tjsp
0b02f6f222ef nginx:1.15. "nginx -g 'daemon of…" minutes ago Up minutes /tcp nginx_test
78b5482a0a95 tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:->/tcp tomcat1
1287b583d3b7 tomcat:8.5. "/bin/bash" About an hour ago Up About an hour /tcp test
修改nginx配置文件
# vi /home/tjsp/nginx/nginx.conf
配置文件如下:
user root;
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ; ## Proxy
upstream tjsp_client_proxy {
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
} upstream tjsp_server_proxy {
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
} upstream etl_server_proxy {
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
#server 172.17.8.20: weight= max_fails= fail_timeout=30s;
} upstream exp_server_proxy {
server 192.168.2.207: weight= max_fails= fail_timeout=30s;
} server {
listen ;
server_name localhost;
error_page /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 : -d redis redis-server --requirepass "" --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]#
5、构建jdk镜像
FROM docker.io/huanwei/alpine-oraclejdk8
ADD app.jar /
EXPOSE
ENTRYPOINT ["java","-D java.security.egd=file:/dev./urandom","-jar","/app.jar","--spring.profiles.active=dev207"]
VOLUME /tmp
构建镜像
# docker build -t cnbi-tjsp:latest .
[root@localhost tjsp]# cd docker-server/
[root@localhost docker-server]#
[root@localhost docker-server]# ls
Dockerfile app.jar
[root@localhost docker-server]#
[root@localhost docker-server]# docker build -t cnbi-tjsp:latest .
Sending build context to Docker daemon 113MB
Step / : FROM docker.io/huanwei/alpine-oraclejdk8
---> 28e66d63b8a4
Step / : ADD /app.jar //
---> 063e68f2e01a
Step / : EXPOSE
---> Running in 9ab4a3c0fc63
Removing intermediate container 9ab4a3c0fc63
---> 7522d6d8ea7f
Step / : ENTRYPOINT ["java","-D java.security.egd=file:/dev./urandom","-jar","/app.jar"]
---> Running in 3726768330c0
Removing intermediate container 3726768330c0
---> d6ddeff92429
Step / : VOLUME /tmp
---> Running in b7ac287ab1c9
Removing intermediate container b7ac287ab1c9
---> 692144a74536
Successfully built 692144a74536
Successfully tagged cnbi-tjsp:latest
[root@localhost docker-server]#
查看构建的镜像
# docker images
[root@localhost docker-server]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cnbi-tjsp latest 692144a74536 minutes ago 280MB
6、创建djk镜像容器
创建挂载目录
# mkdir -p /home/tjsp/nginx/html/file
[root@localhost tjsp]# cd nginx/
[root@localhost nginx]# pwd
/home/tjsp/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]#
[root@localhost nginx]# mkdir -p html/file
[root@localhost nginx]#
[root@localhost nginx]# ls
conf.d fastcgi_params html koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
[root@localhost nginx]#
[root@localhost nginx]# ls html/
file
[root@localhost nginx]#
创建容器
# docker run -itd -p 8083:8082 -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp1 cnbi-tjsp
# docker run -itd -p 8084:8082 -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp2 cnbi-tjsp
解决高并发时添加
# docker run -itd -p 8087:8082 -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp3 cnbi-tjsp
查看启动情况
注意:启动前需要运行redis,nginx配置,tomcat前端
# docker ps
[root@localhost nginx]# docker run -itd -p : -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp1 cnbi-tjsp
ea2df7c4d1051978e67f04ea0d79b7e14081a60bf9c0adfd24b2884bdcefa213
[root@localhost nginx]#
[root@localhost nginx]# docker run -itd -p : -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp2 cnbi-tjsp
f0ed2dd79b9fc4797e84c8f8523660cd38b88fdd5b4ebd971b02eeaa18ce8d1e
[root@localhost nginx]#
[root@localhost nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0ed2dd79b9f cnbi-tjsp "java '-D java.secur…" minutes ago Up seconds 0.0.0.0:->/tcp tjsp2
ea2df7c4d105 cnbi-tjsp "java '-D java.secur…" minutes ago Up seconds 0.0.0.0:->/tcp tjsp1
7626b4b8f3c1 redis "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:->/tcp redis
39e65baa524a nginx:1.15. "nginx -g 'daemon of…" About an hour ago Up About a minute 0.0.0.0:->/tcp nginx_tjsp
78b5482a0a95 tomcat:8.5. "catalina.sh run" hours ago Up About a minute 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" hours ago Up About a minute 0.0.0.0:->/tcp tomcat1
7、构建etl镜像
FROM docker.io/huanwei/alpine-oraclejdk8
ADD app.jar /
ADD kettle5. /kettle5./
EXPOSE
ENTRYPOINT ["java","-D java.security.egd=file:/dev./urandom","-jar","/app.jar","--spring.profiles.active=dev207"]
VOLUME /tmp
构建镜像
# docker build -t tjsp-etl:latest .
[root@localhost docker-etl]# ls
Dockerfile app.jar kettle5. kettle5..zip
[root@localhost docker-etl]#
[root@localhost docker-etl]#
[root@localhost docker-etl]# docker build -t tjsp-etl:latest .
Sending build context to Docker daemon .444GB
Step / : FROM docker.io/huanwei/alpine-oraclejdk8
---> 28e66d63b8a4
Step / : ADD app.jar /
---> 39b216eea6a0
Step / : ADD kettle5. /kettle5./
---> dc9fd65a3fc6
Step / : EXPOSE
---> Running in 30a0948aea50
Removing intermediate container 30a0948aea50
---> 7bd690fb1d8e
Step / : ENTRYPOINT ["java","-D java.security.egd=file:/dev./urandom","-jar","/app.jar"]
---> Running in 94de1962e85f
Removing intermediate container 94de1962e85f
---> 54d952d6afb5
Step / : VOLUME /tmp
---> Running in 62b132e7c2ad
Removing intermediate container 62b132e7c2ad
---> 01892f2a0e9c
Successfully built 01892f2a0e9c
Successfully tagged tjsp-etl:latest
[root@localhost docker-etl]#
查看构建的镜像
# docker images
[root@localhost docker-etl]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tjsp-etl latest 01892f2a0e9c seconds ago 975MB
cnbi-tjsp latest 7161944b3e59 hours ago 280MB
8、创建etl镜像容器
创建容器
# docker run -itd --name tjsp-etl -p 8085:8085 tjsp-etl --network host
[root@localhost ~]# docker run -itd --name tjsp-etl -p : tjsp-etl --network host
e14d155e53192bd1027ee2ed4c0b8b145e41a964d6de824b91c23df3997a6548
[root@localhost ~]#
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e14d155e5319 tjsp-etl "java '-D java.secur…" seconds ago Up seconds 0.0.0.0:->/tcp tjsp-etl
b4ded4008023 cnbi-tjsp "java '-D java.secur…" hours ago Up minutes 0.0.0.0:->/tcp tjsp3
504c7fd1eec6 cnbi-tjsp "java '-D java.secur…" hours ago Up minutes 0.0.0.0:->/tcp tjsp2
6b3c6ddee4c6 cnbi-tjsp "java '-D java.secur…" hours ago Up minutes 0.0.0.0:->/tcp tjsp1
9fe494bf43bc tomcat:8.5. "catalina.sh run" hours ago Up About an hour 0.0.0.0:->/tcp tomcat3
7626b4b8f3c1 redis "docker-entrypoint.s…" hours ago Up hours 0.0.0.0:->/tcp redis
39e65baa524a nginx:1.15. "nginx -g 'daemon of…" hours ago Up hours 0.0.0.0:->/tcp nginx_tjsp
78b5482a0a95 tomcat:8.5. "catalina.sh run" hours ago Up hours 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" hours ago Up hours 0.0.0.0:->/tcp tomcat1
9、进入etl镜像容器设置kettle并启动
添加kettle流程
# docker cp eas_to_brdb/ tjsp-etl:/root/
[root@localhost tjsp]# ll
total
drwxr-xr-x. root root Jul : docker-etl
drwxr-xr-x. root root Jul : docker-server
drwxr-xr-x. root root Jul : eas_to_brdb
drwxr-xr-x. root root Jul : etl_jar
drwxr-xr-x. root root Jul : nginx
drwxr-xr-x. root root Jul : tjsp_jar
drwxr-sr-x. root root May tomcat
drwxr-xr-x. root root Jul : tomcat1
drwxr-xr-x. root root Jul : tomcat2
drwxr-xr-x. root root Jul : tomcat3
[root@localhost tjsp]#
[root@localhost tjsp]#
[root@localhost tjsp]# docker cp eas_to_brdb/ tjsp-etl:/root/
[root@localhost tjsp]#
进入etl容器
# docker exec -it tjsp-etl /bin/sh
[root@localhost ~]# docker exec -it tjsp-etl /bin/sh
/ #
/ # ls
app.jar bin dev etc home kettle5. lib lib64 linuxrc logs media mnt proc root run sbin srv sys tmp usr var
/ #
设置kettle
/ # cd /root/
~ # ls -a
. .. .ash_history .kettle .oracle_jre_usage
~ #
~ # cd .kettle/
~/.kettle #
~/.kettle # ls
kettle.properties
~/.kettle #
# This file was generated by Pentaho Data Integration version 4.4..
#
# Here are a few examples of variables to set:
#
# PRODUCTION_SERVER = hercules
# TEST_SERVER = zeus
# DEVELOPMENT_SERVER = thor
#
# Note: lines like these with a # in front of it are comments
#
KETTLE_DEST_HOST=192.168.2.201
KETTLE_DEST_DATABASE=ORCL
KETTLE_DEST_PORT=
KETTLE_DEST_USER=BRDB_TJSP_1203
KETTLE_DEST_PASSWORD=cnbi2018 KETTLE_EAS_HOST=192.168.2.206
KETTLE_EAS_DATABASE=orcl
KETTLE_EAS_PORT=
KETTLE_EAS_USER=TJEAS
KETTLE_EAS_PASSWORD=
~/.kettle # pwd
/root/.kettle
~/.kettle #
启动kettle
授权
# chmod -R 777 /kettle5.4/
启动
# sh /kettle5.4/kitchen.sh -file /root/eas_to_brdb/eas_to_brdb.kjb
~/.kettle # chmod -R /kettle5./
~/.kettle # cd ..
~ #
~ #
~ # ls -l
total
drwxr-xr-x root root Jul : eas_to_brdb
~ #
~ # sh /kettle5./kitchen.sh -file /root/eas_to_brdb/eas_to_brdb.kjb
Java HotSpot(TM) -Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
// :: - Kitchen - Start of run.
// :: - eas_to_brdb - Start of job execution
// :: - eas_to_brdb - Starting entry [load_dimension_data]
// :: - load_dimension_data - Starting entry [set_period_variable]
// :: - set_period_variable - Loading transformation from XML file [file:///root/eas_to_brdb/load_dimension_data/set_period_variable.ktr]
// :: - set_period_variable - Dispatching started for transformation [set_period_variable]
// :: - 获取传递期间. - Finished processing (I=, O=, R=, W=, U=, E=)
// :: - 设置期间变量. - Setting environment variables...
// :: - 设置期间变量. - Set variable ORGPERIOD to value []
// :: - 设置期间变量. - Set variable ENDPERIOD to value []
10、查看etl服务是否启动成功
监听端口
# lsof -i:8085
[root@localhost ~]# lsof -i:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr root 4u IPv6 0t0 TCP *: (LISTEN)
查看容器启动后10行日志
# docker logs --tail 10 -tf tjsp-etl
[root@localhost ~]# docker logs --tail -tf tjsp-etl
--24T04::.092266671Z -- ::02.091 INFO --- [isson-netty--] o.r.c.pool.MasterPubSubConnectionPool : connections initialized for 192.168.2.207/192.168.2.207:
--24T04::.101305132Z -- ::02.100 DEBUG --- [ main] org.redisson.connection.DNSMonitor : DNS monitoring enabled; Current masters: {redis://192.168.2.207:6379=192.168.2.207/192.168.2.207:6379}, slaves: {}
--24T04::.727084940Z -- ::02.723 DEBUG --- [ main] o.mybatis.spring.SqlSessionFactoryBean : Scanned package: 'com.cnbi.cloud.etl.vo' for aliases
--24T04::.816255252Z -- ::02.811 INFO --- [ main] c.c.cloud.etl.config.FullSQLInterceptor : mybatis intercept dialect:oracle
--24T04::.816415640Z Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
--24T04::.820326603Z -- ::02.817 DEBUG --- [ main] o.mybatis.spring.SqlSessionFactoryBean : Parsed configuration file: 'class path resource [mybatis/mybatis.cfg.xml]'
--24T04::.936385155Z -- ::02.933 DEBUG --- [ main] o.mybatis.spring.SqlSessionFactoryBean : Parsed mapper file: 'class path resource [mybatis/mapper/formulaMapper.xml]'
--24T04::.948821805Z -- ::02.947 DEBUG --- [ main] o.mybatis.spring.SqlSessionFactoryBean : Parsed mapper file: 'class path resource [mybatis/mapper/synchronousDataMapper.xml]'
--24T04::.980705201Z -- ::02.979 DEBUG --- [ main] o.mybatis.spring.SqlSessionFactoryBean : Parsed mapper file: 'class path resource [mybatis/mapper/TableCensusMapper.xml]'
--24T04::.086914939Z -- ::07.086 INFO --- [ main] com.cnbi.cloud.ETLApplication : Started ETLApplication in 12.023 seconds (JVM running for 13.086)
11、后台添加openoffice服务
Dockerfile文件变动如下:
FROM centos
ADD app.jar /
ADD Apache_OpenOffice_4..6_Linux_x86-64_install-rpm_zh-CN.tar.gz /tmp/
ADD chinses.tar.gz /usr/share/fonts/
RUN cd /tmp && \
yum install -y zh-CN/RPMS/*.rpm && \
yum install -y java-1.8.0-openjdk.x86_64 && \
#yum install -y java-1.8.0-openjdk*
yum clean all && \
rm -rf zh-CN && \
cd /usr/share/fonts/ && \
#tar zxvf chinses.tar.gz && \
chmod -R 755 /usr/share/fonts && \
mkfontscale && \
mkfontdir && \
fc-cache -fv
EXPOSE 8082
ENV JAVA_HOME /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
ENTRYPOINT ["java","-D java.security.egd=file:/dev./urandom","-jar","/app.jar","--spring.profiles.active=dev207"]
VOLUME /tmp
重新构建镜像
# docker build -t cnbi-tjsp:v3 .
[root@localhost ~]# cd /home/tjsp/docker-server/
[root@localhost docker-server]#
[root@localhost docker-server]# ls
Apache_OpenOffice_4..6_Linux_x86-64_install-rpm_zh-CN.tar.gz Dockerfile Dockerfile.bak1 app.jar chinses.tar.gz
[root@localhost docker-server]#
查看镜像文件
[root@localhost docker-server]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cnbi-tjsp v3 74235ac7e25d hours ago .28GB
cnbi-tjsp v2 20537b2847fc hours ago 288MB
根据镜像创建容器
# docker run -itd -p 8083:8082 -v /home/tjsp/nginx/html/file/:/home/upload/ --name tjsp1 cnbi-tjsp
12、office服务添加openoffice服务
创建一个构建镜像目录
# mkdir -p /home/tjsp/docker-office
[root@docker-servers ~]# cd /home/tjsp/
[root@docker-servers tjsp]#
[root@docker-servers tjsp]# ls
docker-etl docker-office docker-server nginx nginx.tar.gz tomcat tomcat1 tomcat2 tomcat3 tomcat.tar.gz
[root@docker-servers tjsp]#
[root@docker-servers tjsp]# cd docker-office/
[root@docker-servers docker-office]#
[root@docker-servers docker-office]# ls
Apache_OpenOffice_4..6_Linux_x86-64_install-rpm_zh-CN.tar.gz apache-tomcat-8.0..tar.gz chinses.tar.gz Dockerfile
Dockerfile文件如下:
FROM centos: MAINTAINER djl "djl@cnbisoft.com" ADD Apache_OpenOffice_4..6_Linux_x86-64_install-rpm_zh-CN.tar.gz /tmp/
ADD chinses.tar.gz /usr/share/fonts/
ADD apache-tomcat-8.0..tar.gz /usr/local/ WORKDIR /tmp/
RUN yum install -y zh-CN/RPMS/*.rpm && \
yum install -y java-1.8.0-openjdk.x86_64 && \
yum clean all && \
rm -rf zh-CN WORKDIR /etc/
RUN mv /etc/localtime /etc/localtime.bak && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime WORKDIR /usr/share/fonts/
RUN chmod -R 755 /usr/share/fonts && \
mkfontscale && \
mkfontdir && \
fc-cache -fv
EXPOSE 8080
ENV JAVA_HOME /usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
CMD sh /usr/local/tomcat/bin/catalina.sh run
构建镜像
# docker build -t tjsp-office:v1 .
查看镜像
# docker images
[root@docker-servers ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tjsp-office v1 045b278abebc About an hour ago 1.18 GB
tjsp-etl v1 910ec0ec9bb2 hours ago MB
cnbi-tjsp v1 138868acba1e hours ago 1.42 GB
nginx 1.15. 2bcb04bdb83f months ago MB
centos 9f38484d220f months ago MB
redis 5.0. 0f88f9be5839 months ago MB
tomcat 8.5. 38bdcf7a367c months ago MB
docker.io/huanwei/alpine-oraclejdk8 latest 28e66d63b8a4 years ago MB
根据镜像创建容器
# docker run -p 8086:8080 --name tjsp_office -h tjsp_office -v /home/tjsp/tomcat3:/usr/local/tomcat -d tjsp-office:v1
四、后期修改维护更新说明
1、查看项目运行的所有容器
# docker ps
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4ded4008023 cnbi-tjsp "java '-D java.secur…" hours ago Up hours 0.0.0.0:->/tcp tjsp3
504c7fd1eec6 cnbi-tjsp "java '-D java.secur…" hours ago Up hours 0.0.0.0:->/tcp tjsp2
6b3c6ddee4c6 cnbi-tjsp "java '-D java.secur…" hours ago Up hours 0.0.0.0:->/tcp tjsp1
9fe494bf43bc tomcat:8.5. "catalina.sh run" hours ago Up hours 0.0.0.0:->/tcp tomcat3
7626b4b8f3c1 redis "docker-entrypoint.s…" hours ago Up hours 0.0.0.0:->/tcp redis
39e65baa524a nginx:1.15. "nginx -g 'daemon of…" hours ago Up hours 0.0.0.0:->/tcp nginx_tjsp
78b5482a0a95 tomcat:8.5. "catalina.sh run" hours ago Up hours 0.0.0.0:->/tcp tomcat2
d41f7b69ebbf tomcat:8.5. "catalina.sh run" hours ago Up hours 0.0.0.0:->/tcp tomcat1
2、查看项目所需要的镜像
# docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tjsp-etl latest 01892f2a0e9c hours ago 975MB
cnbi-tjsp latest 7161944b3e59 hours ago 280MB
nginx 1.15. 2bcb04bdb83f months ago 109MB
redis latest 82629e941a38 months ago 95MB
tomcat 8.5. 38bdcf7a367c months ago 546MB
huanwei/alpine-oraclejdk8 latest 28e66d63b8a4 years ago 167MB
3、设置容器开机自启动
# docker update --restart=always xxx
[root@localhost ~]# docker update --restart=always tjsp1
tjsp1
[root@localhost ~]# docker update --restart=always tjsp2
tjsp2
[root@localhost ~]# docker update --restart=always tjsp3
tjsp3
[root@localhost ~]# docker update --restart=always tomcat1
tomcat1
[root@localhost ~]# docker update --restart=always tomcat2
tomcat2
[root@localhost ~]# docker update --restart=always tomcat3
tomcat3
[root@localhost ~]# docker update --restart=always redis
redis
[root@localhost ~]# docker update --restart=always nginx_tjsp
nginx_tjsp
[root@localhost ~]#
参考博客:
用 Docker 构建、运行、发布来一个 Spring Boot 应用
https://blog.csdn.net/kkkloveyou/article/details/50942275
end
docker实战部署Javaweb项目的更多相关文章
- Docker实战部署JavaWeb项目-基于SpringBoot
最近在滴滴云上看到服务器很便宜,1核2G,1年只需要68块钱.下面是我基于Docker部署Javaweb服务的过程.目前我见过的最便宜的服务器,阿里云打折的时候都没有这么便宜啊,果断入手.有需要的话可 ...
- ubuntu16.04环境下在docker上部署javaweb项目简单案例
因为一些原因,接触到了docker,经过一番研究,总算是有了一些自己的看法,有什么不对的地方,希望多多指教. 废话不多说,首先我这里使用的虚拟机安装的是ubuntu16.04版本,其他版本应该也可以. ...
- docker自动化部署前端项目实战一
docker自动化部署前端项目实战一 本文适用于个人项目,如博客.静态文档,不涉及后台数据交互,以部署文档为例. 思路 利用服务器node脚本,监听github仓库webhook push事件触发po ...
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...
- redhat7学习笔记之从零到部署javaweb项目
REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...
- centos7+tomcat部署JavaWeb项目超详细步骤
我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过linux系统的人而言是比较有困难的,而且至今使用云服务器也是有成本的,很多时候我们可以通过虚拟机自己搭建 ...
- centos7部署JavaWeb项目
centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...
- 【转载】centos7+tomcat部署JavaWeb项目超详细步骤
我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过linux系统的人而言是比较有困难的,而且至今使用云服务器也是有成本的,很多时候我们可以通过虚拟机自己搭建 ...
- 记基于docker+gunicorn部署sanic项目遇到的很多很多坑
前言: 最近有个项目需要上线,是python中sanic网络异步框架写的,并且要求使用docker+nginx来部署项目实现负载均衡,于是乎百度了sanic项目部署,基本上都是基于docker+gun ...
随机推荐
- 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不 ...
- Redis Sentinel 高可用机制
内容目录: Sentinel 如何工作的? 核心配置项 怎么选出新 master 的? Sentinel 有多个,具体谁来执行故障转移? Sentinel 是怎么发现 slave 和其他 sentin ...
- 一行代码去掉Devexpress弹窗
使用的是.net hook方法: 使用代码: using System; using System.Windows.Forms; namespace AlexDevexpressToolTest { ...
- spring cloud的配置
注解篇 @EnableEurekaServer 注解启动一个服务注册中心提供给其他应用进行对话 @EnableDiscoveryClient 激活Eureka中的DiscoveryClient实现 配 ...
- 替代 Hystrix,Spring Cloud Alibaba Sentinel 快速入门
提起 Spring Cloud 的限流降级组件,一般首先想到的是 Netflix 的 Hystrix. 不过就在2018年底,Netflix 宣布不再积极开发 Hystrix,该项目将处于维护模式.官 ...
- linux ftp 服务器 ,web 服务器 配置
ftp服务器配置: 1:vsftpd.conf 2;vsftpd.ftpusers 3:vsftpd.user_list web服务器配置: apache 配置
- NOI4.6 最小新整数——切山游戏
描述 给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0.n的位数为m. 现在从m位中删除k位(0<k < m),求生成的新整数最小为多少? ...
- RTMP、HTTP、HLS协议比较
RTMP HLS HTTP 直播协议一次看个够 直播从2016年一路火到了2017年,如今要在自己的App里加入直播功能,只要找一个现成的SDK就行了,什么拍摄.美颜.推流,一条龙服务.不过作为直播身 ...
- ElasticSearch系列专栏
最近我们公司因业务发展较快,不少服务遇到了一些瓶颈,影响最大的就是数据量的暴增带来的搜索效率的问题.虽然建立索引以及利用好缓存可以有效地缓解该问题,但是随着业务的发展,业务的复杂度也逐渐提升,原有的技 ...
- C++基类和派生类的构造函数
派生类不能继承基类的构造函数,若想通过派生类来对基类的private的变量成员进行初始化则需要: 通过派生类的构造函数来调用基类的构造函数完成基类成员变量的初始化. 看下面的例子: #include ...