Docker构建镜像实例
1. 目标
本文目标是使用centos7为基础镜像,构建一个包括java 8,tomcat7,mysql(mariadb),mycat的镜像,并验证从本机(非宿主机)能访问 8080 ,能用mysql客户端连接mycat的 8066,9066端口。
2. 步骤
2.1 下拉镜像
首先从仓库下拉centos7镜像,为了加速下拉,我这里选择国内的daoclould作为代理镜像
2.2 制作Dockfile
Dockfile
from centos:7
MAINTAINER Alex Wu
RUN yum -y install wget
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#install java8
#ADD jdk-8u51-linux-x64.gz /usr/local
#RUN ln -s /usr/local/jdk1.8.0_51 /usr/local/java
#ENV JAVA_HOME /usr/local/java
#ENV PATH $PATH:$JAVA_HOME/bin
RUN yum -y install java-1.8.0-openjdk
#install tomcat
ADD apache-tomcat-7.0.67.tar.gz /usr/local
RUN ln -s /usr/local/apache-tomcat-7.0.67 /usr/local/tomcat
#install mysql
#ADD mariadb-5.5.36-linux-x86_64.tar.gz /usr/local
#RUN groupadd -r mysql && useradd -g mysql -r mysql
#RUN ln -s /usr/local/mariadb-5.5.36-linux-x86_64 /usr/local/mysql
#RUN chown -R mysql:mysql /usr/local/mysql/data
#RUN /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
RUN yum -y install mariadb-server mariadb
RUN /usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql
#install mycat
ADD Mycat-server-1.4-release-20151019230038-linux.tar.gz /opt
COPY ./schema.xml /opt/mycat/conf
ENV MYCAT_USER mycatuser
ENV MYCAT_PASS mycatpass
RUN sed -i 's/user name="test"/user name=\"'"$MYCAT_USER"'"/' /opt/mycat/conf/server.xml && sed -i 's/name="password">test/name="password" >'"$MYCAT_PASS"'/' /opt/mycat/conf/server.xml
EXPOSE 8080 8066 9066
COPY ./start.sh .
ENTRYPOINT ./start.sh
2.3 Start脚本
#!/bin/bash
#/usr/local/mysql/bin/mysqld_safe --datadir='/usr/local/mysql/data' &
/usr/bin/mysqld_safe --datadir=/var/lib/mysql &
/opt/mycat/bin/mycat start &
/usr/local/tomcat/bin/catalina.sh run
2.4 build镜像
#docker build -t myimage/first .
build 完毕,我们可以看到image
#docker images
2.5 启动容器
docker create --name mycontainer01 -p 8080:8080 -p 8066:8066 -p 9066:9066 myimage/first
docker start mycontainer01
docker exec -it mycontainer01 /bin/bash
我们可以看到容器已经起来。
3. 验证
3.1 访问8080端口
3.2 其他主机mysql访问8066,9066端口
mysql -umycatuser -pmycatpass -h192.168.199.111 –P8066
mysql -umycatuser -pmycatpass -h192.168.199.111 –P9066