Docker10-实战-构建Java Web运行环境

创建Docker镜像

[info]构建Docker镜像的一般过程是首先创建一个容器,
并在容器里修改镜像,配置相关环境等,最后将修改提交为一个新镜像。

下载制作镜像的系统

root@ubuntu:/home/guanfuchang# docker pull ubuntu

下载完成后,本地多了一个ubuntu系统镜像如下:

root@ubuntu:/home/guanfuchang# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              ea4c82dcd15a        4 weeks ago         85.8MB
...

启动容器并修改镜像

创建启动容器ubuntu:latest,并将本地目录挂载到容器中

docker run -i -t -v /data/software/:/data/software ubuntu:latest /bin/bash

参数说明:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中

在容器中安装JDK,Tomcat

  1. 将安装介质上传到宿主主机目录/data/software 中,然后进入容器
    安装介质JDK链接:https://pan.baidu.com/s/1nXiJ18HUBbnPC3IdMNi46g 密码:2phd
    安装介质Tomcat链接:https://pan.baidu.com/s/1GVJria7QjzvwSCZHBFdloQ 密码:q3c0
    启动容器,然后进入容器(进入容器前,需先将容器运行起来)
root@ubuntu:/data/software# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                        PORTS                     NAMES
ddeb33467e9e        ubuntu:latest         "/bin/bash"              2 hours ago         Exited (127) 24 minutes ago                             xenodochial_keller
root@ubuntu:/data/software# 
root@ubuntu:/data/software# docker start ddeb33467e9e
ddeb33467e9e
root@ubuntu:/data/software# docker attach ddeb33467e9e
root@ddeb33467e9e:/# 

查看/data/software中是否已经同步了安装介质。

root@ddeb33467e9e:/# cd /data/software/
root@ddeb33467e9e:/data/software# ls
apache-tomcat-9.0.13.tar.gz  jdk-8u191-linux-x64.tar.gz
  1. 将JDK和Tomcat 安装到/data 目录下
root@ddeb33467e9e:/data/software# tar -zxvf jdk-8u191-linux-x64.tar.gz -C /data/
root@ddeb33467e9e:/data/software# tar -zxvf apache-tomcat-9.0.13.tar.gz -C /data/
root@ddeb33467e9e:/data/software#
root@ddeb33467e9e:/data/software# cd ..
root@ddeb33467e9e:/data# mv jdk1.8.0_191 jdk
root@ddeb33467e9e:/data# mv apache-tomcat-9.0.13 tomcat
root@ddeb33467e9e:/data# ls
jdk  software  tomcat
  1. 修改环境变量,将下面的配置添加到 /etc/profile 的最后面
#set java environment    
export JAVA_HOME=/data/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:{JRE_HOME}/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export CATALINA_HOME=/data/tomcat
export CATALINA_BASE=/data/tomcat

[warning]容器内如果vim命令无法使用,需先安装,安装如下:
root@ddeb33467e9e:/data# apt update
root@ddeb33467e9e:/data# apt install vim

修改后,使配置立即生效

root@ddeb33467e9e:/data# source /etc/profile

检查java配置是否生效

root@ddeb33467e9e:/# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

编写启动脚本

root@ddeb33467e9e:/# vim /data/start.sh

脚本如下:

#!/bin/bash
# Export environment variable
source /etc/profile
# Start tomcat
bash /data/tomcat/bin/catalina.sh run

授权启动脚本

root@ddeb33467e9e:/# chmod u+x /data/start.sh 

制作镜像

查看容器,获取容器ID

root@ubuntu:/data/software# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                     NAMES
ddeb33467e9e        ubuntu:latest       "/bin/bash"              About an hour ago   Exited (127) 6 seconds ago                             xenodochial_keller

制作镜像

root@ubuntu:/data/software# docker commit ddeb33467e9e mt/mytomcatdemo:1.0

查看镜像是否已经安装成功

root@ubuntu:/data/software# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mt/mytomcatdemo     1.0                 a65637693626        41 seconds ago      580MB

创建并运行容器,指定宿主端口18080

root@ubuntu:/data/software# docker run -d -p 18080:8080 --name tomcatdemo mt/mytomcatdemo:1.0 /data/start.sh
96f03a0e009e706b213583a1408153f8c26314a1d6776204f9b1a6798ed313a7

查看容器是否已经在运行

root@ubuntu:/data/software# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                     NAMES
96f03a0e009e        mt/mytomcatdemo:1.0   "/data/start.sh"    10 seconds ago      Up 10 seconds       0.0.0.0:18080->8080/tcp   tomcatdemo

访问宿主ip:端口,如:http://192.168.147.128:18080/ 访问如下即说明镜像制作成功,成功运行。


:-:
微信扫一扫,关注“python测试开发圈”,了解更多测试教程!

posted @ 2019-05-08 13:53  鲨鱼逛大街  阅读(399)  评论(0编辑  收藏  举报