大白话之Docker(叁):制作一个运行Tomcat服务端的Docker镜像

前言

如没看过上一章,请点我跳转

上一章我们使用Tomcat镜像搭建了一个WEB服务端。
本章,我们将从零开始搭建一个Tomcat服务端。大体需要以下步骤:

  1. 在容器中安装一个系统(我使用Ubuntu)
  2. 在容器中安装JDK并配置环境变量以运行Tomcat
  3. 在容器中拷贝Tomcat

既然目标已经明确,那么我们就开始吧。

初始化项目

下载文件

在项目开始之前,我们需要下载所需的文件:

JDK 1.8
Tomcat 9

解压文件

将JDK和Tomcat的压缩包解压,并新建一个文件夹用于存放该镜像所需的文件,把解压后的文件夹拷贝到该文件夹中。

1adler@localhost ~/dockerTomcat: tar -zxvf jdk-8u201-linux-x64.tar.gz
2adler@localhost ~/dockerTomcat: tar -zxvf apache-tomcat-9.0.13.tar.gz
3adler@localhost ~/dockerTomcat: ls
4apache-tomcat-9.0.13 jdk1.8.0_201

Dockerfile

Dockerfile就像一个脚本语言,它用于告知Docker如何制作一个镜像。让我们在Docker目录中新建一个Dockerfile文件,编辑内容:

 1FROM ubuntu
 2MAINTAINER AdlerED
 3ENV REFRESHED_AT 2019-04-14
 4
 5WORKDIR /usr
 6RUN mkdir jdk
 7RUN mkdir tomcat
 8ADD jdk1.8.0_201 /usr/jdk
 9ADD apache-tomcat-9.0.13 /usr/tomcat
10
11ENV JAVA_HOME=/usr/jdk
12ENV JRE_HOME=$JAVA_HOME/jre
13ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
14ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
15
16EXPOSE 8080
17ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]

看不懂?没关系,这里有常用命令解释:

 1FROM 使用镜像
 2RUN 执行命令
 3ADD 添加文件
 4COPY 拷贝文件
 5CMD 执行命令
 6EXPOSE 执行命令
 7WORKDIR 指定路径
 8MAINTAINER 维护者
 9ENV 设定环境变量
10USER 指定路径
11VOLUME 逻辑卷挂载点

这样,我们就在Ubuntu的基础上安装了JDK并配置好了环境。

制作镜像

保存Dockerfile。下面让我们构造一个Docker镜像:

注意:命令中有一个".",表示当前目录下的所有文件/文件夹。

 1adler@localhost ~/dockerTomcat: docker build -t tom1 .
 2Sending build context to Docker daemon    465MB
 3Step 1/14 : FROM ubuntu
 4latest: Pulling from library/ubuntu
 5898c46f3b1a1: Already exists
 663366dfa0a50: Already exists
 7041d4cd74a92: Already exists
 86e1bee0f8701: Already exists
 9Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8
10Status: Downloaded newer image for ubuntu:latest
11 ---> 94e814e2efa8
12Step 2/14 : MAINTAINER AdlerED
13 ---> Running in 0d8881a48673
14Removing intermediate container 0d8881a48673
15 ---> 096a71fce35c
16Step 3/14 : ENV REFRESHED_AT 2019-04-14
17 ---> Running in cc70cde8bbdf
18Removing intermediate container cc70cde8bbdf
19 ---> 5e729baf8ba6
20Step 4/14 : WORKDIR /usr
21 ---> Running in ffafbb0c2f39
22Removing intermediate container ffafbb0c2f39
23 ---> 5c67d2c834b8
24Step 5/14 : RUN mkdir jdk
25 ---> Running in 456ba09c5f78
26Removing intermediate container 456ba09c5f78
27 ---> 4b20a82e75b2
28Step 6/14 : RUN mkdir tomcat
29 ---> Running in 4e37fa2c7f1e
30Removing intermediate container 4e37fa2c7f1e
31 ---> 36be7992366e
32Step 7/14 : ADD jdk1.8.0_201 /usr/jdk
33 ---> b73582ceb345
34Step 8/14 : ADD apache-tomcat-9.0.13 /usr/tomcat
35 ---> de37ef37b5f0
36Step 9/14 : ENV JAVA_HOME=/usr/jdk
37 ---> Running in 2fb661484354
38Removing intermediate container 2fb661484354
39 ---> 65486f651010
40Step 10/14 : ENV JRE_HOME=$JAVA_HOME/jre
41 ---> Running in 589b25aee5c9
42Removing intermediate container 589b25aee5c9
43 ---> 21ff9fc63c15
44Step 11/14 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
45 ---> Running in 0041fb914b69
46Removing intermediate container 0041fb914b69
47 ---> d4e69f027c43
48Step 12/14 : ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
49 ---> Running in dca277cebf53
50Removing intermediate container dca277cebf53
51 ---> 1d17efbfa7f7
52Step 13/14 : EXPOSE 8080
53 ---> Running in 3c34d45b2b12
54Removing intermediate container 3c34d45b2b12
55 ---> cb23d57bbad3
56Step 14/14 : ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
57 ---> Running in a568509006bf
58Removing intermediate container a568509006bf
59 ---> c3f64777810c
60Successfully built c3f64777810c
61Successfully tagged tom1:latest

这样,我们就成功将Tomcat制作为了一个镜像。让我们运行它:

1adler@localhost ~/dockerTomcat: docker run -it -p 8080:8080 tom1

不出意外的话,访问http://localhost:8080,你应该可以看到Tomcat的默认页了。

后语

此时,我们成功搭建了一个Tomcat的运行环境,它基于Ubuntu。至此,你已经成功入门了Docker!

如转载请在文章尾部添加

原作者来自 adlered 个人技术博客:https://www.stackoverflow.wiki/

    评论
    0 评论
avatar

取消