博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker分离部署MySQL、Nginx+Tomcat复制共享
阅读量:7034 次
发布时间:2019-06-28

本文共 3397 字,大约阅读时间需要 11 分钟。

防伪码:失去只是一种姿势,得到并不等同于幸福

项目需求:

1、nginx容器作为整个架构中前端服务器监听80端口接收用户的jsp页面请求,并将用户的jsp请求分发给tomcat web容器,tomcat容器需要连接mysql数据库容器。

2、nginx容器做为前端服务器可以直接响应用户的静态页面请求,jsp动态页面请求交给tomcat容器处理(静动分离)

3、通过session复制共享:session replication,实现tomcat服务器之间同步session,使session保持一致。

注:,session复制共享在前文详细讲解过,此处不再赘述。

如图所示:

制作nginx镜像

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

用docker build 生成nginx镜像

制作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

编写tomcat守护进程脚本

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启动时要执行的脚本

用docker build 生成tomcat镜像

制作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

用docker build 生成mysql镜像

至此,镜像都已经做好。

下面开始启动容器

先启动mysql

启动tomcat连接mysql

再启动nginx连接两台tomcat

Docker ps 查看容器启动状态

开始测试

验证tomcat连接mysql

谢谢观看,真心的希望能帮到您!

 

转载地址:http://oxjal.baihongyu.com/

你可能感兴趣的文章
织梦dedecms搜索页加上序列号autoindex
查看>>
Fantacy团队周一站立会议
查看>>
c语言指针疑惑[转载]
查看>>
设计模式:状态模式(State Pattern)
查看>>
iOS开发官方文档汇总
查看>>
观察者模式
查看>>
MP4 atom (1)
查看>>
常见浏览器兼容性问题与解决方案(下)
查看>>
C++中this指针的用法详解
查看>>
并发编程
查看>>
关闭sleeping连接进程在Sql Server2000数据库存储过程中(转)
查看>>
Threading in C#
查看>>
m3u8字段意义解析
查看>>
PLC 数据类型
查看>>
javascript引用类型
查看>>
tripletloss
查看>>
实验三
查看>>
关于XMLHttpRequest状态的讨论及处理方法
查看>>
Swagger配置完之后无法访问
查看>>
Keepalived的安装
查看>>