大白话之Docker(叁):制作一个运行Tomcat服务端的Docker镜像
前言
如没看过上一章,请点我跳转
上一章我们使用Tomcat镜像搭建了一个WEB服务端。
本章,我们将从零开始搭建一个Tomcat服务端。大体需要以下步骤:
- 在容器中安装一个系统(我使用Ubuntu)
- 在容器中安装JDK并配置环境变量以运行Tomcat
- 在容器中拷贝Tomcat
既然目标已经明确,那么我们就开始吧。
初始化项目
下载文件
在项目开始之前,我们需要下载所需的文件:
解压文件
将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 评论