Docker:搭建tomcat+mysql+web+nginx运行环境
2016-08-17 20:44
836 查看
1. 镜像准备
采用基础镜像为CentOS,由于公司网络网络限制,连接不上Docker Hub,采用离线下载,下载地址为:centos-6-x86_64.tar.gz,下载到本地以后采用docker
import 命令导入。
tomcat版本选择tomcat 8,将下载好的jdk8和tomcat包解压到/opt/web目录下,该目录将作为数据卷挂载到容器中,用于tomcat基本环境的安装。
启动一个基本容器
/etc/profile但是也不生效,最后在~/.bashrc中添加了source /etc/profile才生效,我也不知道什么原因(︶︿︶)。
JDK设置好以后,编写tomcat开机启动脚本tomcat.sh
3. 搭建mysql
编写Dockerfile文件
生成镜像
4. web项目
5. nginx负载均衡
6. 遇到的问题
采用基础镜像为CentOS,由于公司网络网络限制,连接不上Docker Hub,采用离线下载,下载地址为:centos-6-x86_64.tar.gz,下载到本地以后采用docker
import 命令导入。
cat centos-6-x86_64.tar.gz | docker import - centos:latest2[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. 遇到的问题
相关文章推荐
- MySQL中的integer 数据类型
- java-模拟tomcat服务器
- MySQL存储过程
- i-jetty环境搭配与编译
- nginx代理指定目录
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- centos6.5上安装docker
- 在kubernetes上实现tomcat日志的持久化
- 访问Nginx发生SSL connection error的一种情况
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- Linux部署Tomcat服务器