美文网首页Docker入门
搭建Centos7+jdk7+tomcat7的Docker镜像文

搭建Centos7+jdk7+tomcat7的Docker镜像文

作者: 为技术疯狂 | 来源:发表于2018-05-02 17:42 被阅读73次

    一、准备centos基础镜像

    docker pull centos

    二、准备jdk7和tomcat7安装包

    1、创建工作目录,mkdir centos_jdk7_tomcat7

    2、准备下载jdk7的tar.gz包http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1525233029_d13f7c13cac82fa41cc3a1ba5160a75e

    3、解压到目录/home/lizhanhong/docker/centos_jdk7_tomcat7下, 并重命名为jdk

    tar -xvf jdk-7u80-linux-x64.tar.gz

    mv jdk-7u80-linux-x64 jdk

    4、准备下载tomcat7的tar.gz包wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75.tar.gz

    5、解压到目录/home/lizhanhong/docker/centos_jdk7_tomcat7下, 并重命名为tomcat

    tar -xvf apache-tomcat-7.0.86.tar.gz

    mv apache-tomcat-7.0.86 tomcat

    6、删掉jdk文件夹下多余文件, 降低build的镜像大小

    rm -rf /home/lizhanhong/docker/centos_jdk7_tomcat7/jdk/*src.zip

    三、进入/home/lizhanhong/docker/centos_jdk7_tomcat7目录, 在当前目录下创建Dockerfile文件

    cd /home/lizhanhong/docker/centos_jdk7_tomcat7

    vi Dockerfile

    #插入以下内容

    #使用的基础镜像

    FROM centos

    #作者信息

    MAINTAINER lzh "710065428@qq.com"

    #创建目录

    RUN mkdir -p /z/java/jdk-7u80

    #把当前目录下的jdk文件夹添加到镜像

    ADD jdk /z/java/jdk-7u80

    #创建tomcat目录

    RUN mkdir -p /z/java/apache-tomcat-7.0.86

    #把当前目录下的tomcat文件夹添加到镜像

    ADD tomcat /z/java/apache-tomcat-7.0.86

    #添加环境变量

    ENV JAVA_HOME /z/java/jdk-7u80

    ENV CATALINA_HOME /z/java/apache-tomcat-7.0.86

    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

    #暴露8080端口

    EXPOSE 8080

    #增加war到tomcat

    ADD weatherservice.war /z/java/apache-tomcat-7.0.86/webapps/

    #启动时运行tomcat

    CMD ["/z/java/apache-tomcat-7.0.86/bin/catalina.sh","run"]

    四、开始构建docker镜像文件

    docker build -t centos-jdk7-tomcat7:0.0.1 .

    -t 设置tag名称, 命名规则registry/image:tag

    . 表示使用当前目录下的Dockerfile文件

    等待构建完成, 不出意外的话, 执行docker images将会得到以下结果

    说明centos-jdk7-tomcat7镜像已经构建好了, 从这个镜像启动容器, 并配置好端口, 就能直接在浏览器上看到tomcat默认界面了

    五、容器操作

    1、启动centos-jdk7-tomcat7容器

    docker run -d -p 8081:8080 --name weather-tomcat centos-jdk7-tomcat7:0.0.1

    -d后台运行;-p宿主机port:容器port 端口映射

    --name容器名称, 可以通过容器名称对容器操作

    2、如果系统没禁用防火墙的话, 可能需要开放8081端口

    #直接执行命令, 开放端口号(重启后可能失效)

    iptables -A INPUT -ptcp --dport8081-j ACCEPT

    ##或者

    #直接修改iptables, 重启后不会失效

    vi /etc/sysconfig/iptables

    #插入以下内容-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport8081-j ACCEPT

    重启iptables服务

    service iptables restart

    3、centos7下可以直接使用firewall-cmd来开放端口

    #开放8081端口 permanent为永久开放

    firewall-cmd --zone=public--add-port=8081/tcp --permanent

    #重新读取配置

    firewall-cmd --reload

    #查看全部开放端口

    firewall-cmd --list-all

    如果提示FirewallD is not running

    执行systemctl start firewalld.service, 启动firewalld服务

    4、直接在浏览器访问centos7系统的8081端口, 已经能看到tomcat的默认界面了

    http://172.10.10.69:8081/

    5、查看container容器的运行状态

    现在的容器状态为Up, 运行中, 如何停止一个运行中的容器? 运行docker stop 容器名称或者容器ID命令

    6、停止容器

    docker stop weather-tomcat1

    7、打开存在的容器

    docker start weather-tomcat1

    8、如何强制删除一个运行中的容器?

    docker rm -f weather-tomcat1

    docker rm 命令删除一个Exited状态的容器, docker rm -f 强制删除一个运行中的容器

    9、进入某个容器:docker exec -it 容器ID /bin/bash

    sudo docker exec -it a8f8c467ab30 /bin/bash

    到这里, 在centos7系统下构建docker镜像文件已经成功

    六、修改容器

    1、把宿主机的数据拷贝到容器:

    docker cp autofile weather-tomcat:/z/java/apache-tomcat-7.0.86/webapps/weatherservice/WEB-INF/classes/

    2、提交生成新的镜像

    docker commit -m "db config" -a "lizhanhong" a8f8c467ab30 centos-jdk7-tomcat7:0.0.2

    其中,-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

    3、启动多个容器

    docker run -d -p 8081:8080 --name weather-tomcat1 centos-jdk7-tomcat7:0.0.2

    docker run -d -p 8082:8080 --name weather-tomcat2 centos-jdk7-tomcat7:0.0.2

    docker run -d -p 8083:8080 --name weather-tomcat3 centos-jdk7-tomcat7:0.0.2

    4、Nginx做负载

    重启Nginx

    sudo nginx -s reload

    相关文章

      网友评论

        本文标题:搭建Centos7+jdk7+tomcat7的Docker镜像文

        本文链接:https://www.haomeiwen.com/subject/flucrftx.html