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 ...
随机推荐
- 如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出
这是该系列的第一篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore. 第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输 ...
- 关于互信息(Mutual Information),我有些话要说
两个随机变量的独立性表示两个变量X与Y是否有关系(贝叶斯可证),但是关系的强弱(mutual dependence)是无法表示的,为此我们引入了互信息. 其中 p(x,y) 是 X 和 Y 的联合概率 ...
- 获取各类前几名数据的MYSQL写法
前几天,某在培训的朋友问我一个问题:查询每门功课成绩最好的前两名该怎么写. 这个问题虽然听起来挺简单,但是很有意思,于是我就新建了一张如下的表: stuNo为学号,stuScore为分数,course ...
- 【JQ】 validate验证表单时多个name相同的元素的解决办法
使用jQuery.validate插件http://jqueryvalidation.org/,当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上. ...
- 图像矫正技术深入探讨(opencv)
刚进入实验室导师就交给我一个任务,就是让我设计算法给图像进行矫正.哎呀,我不太会图像这块啊,不过还是接下来了,硬着头皮开干吧! 那什么是图像的矫正呢?举个例子就好明白了. 我的好朋友小明给我拍了这几张 ...
- 用CSS实现横向滚动条
在进行app制作时,需要使用横向滚动条是内容展示更完善 首先,这是html代码: 这是CSS代码: 要点: 设置显示内容的宽 white-space是防止内容自动折行 overflow-y设置为hid ...
- HTTP核心模块(HTTP Core)
alias 语法:alias file-path|directory-path;默认值:no使用字段:location这个指令指定一个路径使用某个某个,注意它可能类似于root,但是document ...
- ApplicationContextAware获取bean
ApplicationContextAware获取bean 概述 在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器 ...
- js----UTC时间于本地时间相差8小时问题
js----UTC时间于本地时间相差8小时问题 js获取周几有两个方法getDay() getUTCDay(),但是它们是有区别的,前者返回的本地时间,后者返回的UTC时间,一般情况下,两者相差8个小 ...
- volatile梳理
volatile 可见性也就是说一旦某个线程修改了该被volatile修饰的变量,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,可以立即获取修改之后的值. 在Java中为了加快程序的运行 ...