您的位置:首页 > 运维架构 > Docker

Docker:搭建tomcat+mysql+web+nginx运行环境

2016-08-17 20:44 836 查看
1. 镜像准备

     采用基础镜像为CentOS,由于公司网络网络限制,连接不上Docker Hub,采用离线下载,下载地址为:centos-6-x86_64.tar.gz,下载到本地以后采用docker
import 命令导入。
cat centos-6-x86_64.tar.gz | docker import - centos:latest
2[b]. 搭建tomcat[/b]
     tomcat版本选择tomcat 8,将下载好的jdk8和tomcat包解压到/opt/web目录下,该目录将作为数据卷挂载到容器中,用于tomcat基本环境的安装。

启动一个基本容器
docker run -ti --rm -v /opt/web:/opt/web --name tomcat centos:latest /bin/bash
从数据卷复制文件到容器中
mkdir /opt/modules
cp -r /opt/web/jdk /opt/modules/        //将jdk8复制到容器里
cp -r /opt/web/tomcat /opt/modules/     //将tomcat8复制到容器里
在/etc/profile文件末尾添加JDK环境变量
export JAVA_HOME=/opt/modules/jdk
export PATH=$PATH:$JAVA_HOME/bin
这里可以将JDK环境变量设置放到tomcat开机启动脚本中,我在配置过程中将JDK环境变量放在/etc/profile中,然而在容器中环境变量并不生效,我就在/etc/rc.d/rc.local中添加了source
/etc/profile但是也不生效,最后在~/.bashrc中添加了source /etc/profile才生效,我也不知道什么原因(︶︿︶)。
JDK设置好以后,编写tomcat开机启动脚本tomcat.sh
#!/bin/bash

#export JAVA_HOME=/opt/modules/jdk
#export PATH=$PATH:$JAVA_HOME/bin

sh /opt/modules/tomcat/bin/catalina.sh run
脚本放到/root目录下,添加运行权限chmod u+x /root/tomcat.sh,到这里tomcat基础环境配置完毕,保存为镜像。
docker commit tomcat centos:tomcat
编写Dockerfile文件
FROM centos:tomcat
MAINTAINER black
EXPOSE 8080
CMD ["/root/tomcat.sh"]
生成镜像

docker build -t tomcat:latest .
启动tomcat容器
docker run -d --name tm1 -p 7001:8080 -v /opt/web:/opt/web tomcat:latest
docker run -d --name tm2 -p 7002:8080 -v /opt/web:/opt/web tomcat:latest
在浏览器中输入http://宿主主机IP:7001或7002查看tomcat容器是否启动成功。
3. 搭建mysql
编写Dockerfile文件
FROM centos:latest
MAINTAINER black
RUN yum install -y mysql-server mysql
RUN /etc/init.d/mysqld  start &&\
mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'asd123';" &&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'asd123';" &&\
mysql -u root -pasd123 -e "show databases;"
RUN sed -i '/\\[mysqld\\]/a skip-name-resolve' /etc/my.cnf  //注意:将双反斜线\\改为单反斜线\
EXPOSE 3306
CMD ["/usr/bin/mysqld_safe"]

生成镜像
docker build -t mysql .
启动tomcat容器
docker run -d --name mysql -p 3306:3306 mysql
开启一个终端,mysql -h 宿主主机IP -u root -p 连接测试mysql容器是否启动成功。
4. web项目


5. nginx负载均衡

6. 遇到的问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息