Docker分離部署MySQL、Nginx+Tomcat復制共享


防偽碼:失去只是一種姿勢,得到並不等同於幸福

項目需求:

1、nginx容器作為整個架構中前端服務器監聽80端口接收用戶的jsp頁面請求,並將用戶的jsp請求分發給tomcatweb容器,tomcat容器需要連接mysql數據庫容器。

2、nginx容器做為前端服務器可以直接響應用戶的靜態頁面請求,jsp動態頁面請求交給tomcat容器處理(靜動分離)

3、通過session復制共享:session replication,實現tomcat服務器之間同步session,使session保持一致。

注:http://yw666.blog.51cto.com/11977292/1888747,session復制共享在前文詳細講解過,此處不再贅述。

如圖所示:

wKioL1h-OJfAu8VMAAB_uUH6wOI048.jpg-wh_50

制作nginx鏡像

from docker.io/centos:centos6add nginx-1.6.0 /nginx-1.6.0
run yum -y install gcc pcre pcre-devel zlib-devel make
run useradd nginx -s /sbin/nologin
run cd /nginx-1.6.0 && ./configure --prefix=/nginx --user=nginx --group=nginx && make &&
make install
run echo "daemon off;" >> /nginx/conf/nginx.conf
run echo 'ip1=$(cat /etc/hosts | grep tomcat1 | awk '"'{print "'$1'"}'"')' >>
/7.sh
run  echo 'ip=$(cat /etc/hosts | grep tomcat2 | awk '"'{print "'$1'"}'"')' >>
/7.sh
run echo "sed -i -e '33 i"'\u'"pstream backend {' -e '33 i"'\s'"erver ""'"'$ip'"'"":8080
weight=1;' -e '33 i"'\s'"erver ""'"'$ip1'"'"":8080 weight=1;}' -e '46 i"'\p'"roxy_pass http://backend;' /nginx/conf/nginx.conf" >> /7.sh
run echo "/nginx/sbin/nginx" >> /7.sh
cmd source /7.sh


wKiom1h-OY7yNK8YAAF4VZEcVE0315.jpg-wh_50

用docker build 生成nginx鏡像

wKiom1h-OZvDJKTqAAAZAZzJvS8974.png-wh_50

制作tomcat鏡像

from docker.io/centos:centos6add apache-tomcat-7.0.54 /apache-tomcat-7.0.54add jdk1.7.0_65 /jdk1.7.0_65add 123.sh /123.shadd profile /profilerun mv /jdk1.7.0_65 /javarun mv /apache-tomcat-7.0.54 /tomcat7add server.xml /tomcat7/conf/server.xmladd context.xml /tomcat7/conf/context.xmlrun cp -rf /profile /etc/profilerun echo 'ip1=$(ifconfig | grep Bcast | awk '"'{print "'$2'"}'"' | awk -F : '"'{print"'$2'"}')" >>  /8.shrun echo 'ip2=$(cat /etc/hosts | grep mysql | awk '"'{print "'$1'"}'"')' >> /8.shrun echo "sed -i '118 "'i\a'"ddress="'"'"'"'$ip1'"'"'"'"'""/tomcat7/conf/server.xml" >> /8.shrun echo "sed -i '23 i"'\u'"rl="'"'jdbc:mysql://"'"'$ip2'"'":3306/javatest'"'"/>'/tomcat7/conf/context.xml" >> /8.shadd mysql-connector-java-5.1.22-bin.jar /tomcat7/lib/mysql-connector-java-5.1.22-bin.jaradd 456.sh /456.sh


cmd source /456.sh


wKioL1h-OcnieC5dAAHGbrA5YUU278.jpg-wh_50

編寫tomcat守護進程腳本

wKioL1h-OeHhAvRfAAAWPHqmKIk047.png-wh_50

wKiom1h-Oe-j3MroAAA7WIeyFuo319.png-wh_50

program="/tomcat7/bin/startup.sh"   progress="tomcat"    while true;   do           sleep 10           progremflag=`ps -ef |grep $progress|wc -l`          echo $progremflag          if [ $progremflag -le 10 ];then                  $program >/dev/null 2>&1 &          fi  done


編寫cmd啟動時要執行的腳本

wKioL1h-OgPjKNK3AAAkG3cVox4293.png-wh_50

用docker build 生成tomcat鏡像

wKiom1h-Ozezrp8DAABcBYmj6Bs397.png-wh_50

制作mysql鏡像

from docker.io/centos:centos6add cmake-2.8.12 /cmake-2.8.12add  mysql-5.5.38 /mysql-5.5.38run yum -y install ncurses-devel gcc gcc-c++run cd /cmake-2.8.12 && ./configure && gmake && gmake installrun cd /mysql-5.5.38 && cmake -DCMAKE_INSTALL_PREFIX=/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all -SYSCONFDIR=/etc && make && make installrun rm -rf /etc/my.cnfrun cp /mysql-5.5.38/support-files/my-medium.cnf /etc/my.cnfrun cp /mysql-5.5.38/support-files/mysql.server /mysqldrun chmod 777 /mysqldrun groupadd mysqlrun useradd -M -s /sbin/nologin mysql -g mysqlrun chown -R mysql:mysql /mysqlrun /mysql/scripts/mysql_install_db --user=mysql --basedir=/mysql/ --datadir=/mysql/data/run ./mysqld start &&  cd /mysql/bin && echo "grant all privileges on *.* to 'root'@'%.%.%.%'identified by '123456';" | ./mysql -u root && echo "create database javatest;" | ./mysql -u root && echo "create table javatest.yw(id int);" | ./mysql -u rootcmd cd /mysql/bin && ./mysqld_safe


wKiom1h-O2zyPPUbAAH-3BVBF1U305.jpg-wh_50

用docker build 生成mysql鏡像

wKiom1h-O4TARq1oAAAZK0dogZA600.png-wh_50

至此,鏡像都已經做好。

下面開始啟動容器

先啟動mysql

wKioL1h-O7HzeJQZAAAq1aoQx7c627.png-wh_50

啟動tomcat連接mysql

wKiom1h-O8SCmkL7AABNtuQRTSU564.png-wh_50

再啟動nginx連接兩台tomcat

wKioL1h-O9HCLDHOAACgeEEsB7E797.jpg-wh_50

Docker ps 查看容器啟動狀態

wKiom1h-O-CBKn7AAABlXpUHSXM889.png-wh_50

開始測試

wKiom1h-PIGxbKL1AAELbpq6syI380.jpg-wh_50

wKiom1h-PAjTL2qmAAEQvOB9vOM770.jpg-wh_50

驗證tomcat連接mysql

wKioL1h-PGXgooUhAAGOXaEcANQ337.jpg-wh_50

wKioL1h-PDDh8cj9AAAmWtVmroQ508.png-wh_50

謝謝觀看,真心的希望能幫到您!

 

本文出自 “一盞燭光” 博客,謝絕轉載!


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com