Docker镜像制作2 --- 制作tomcat镜像¶
一. 梳理¶
底座用什么?
debian
需要什么环境依赖?
jdk,版本选择稳定的JDK21
先pull debian底座,再创建jdk21工作目录并制作jdk21镜像。利用jdk21镜像制作tomcat镜像
二. 制作jdk21镜像¶
0. 准备¶
a. 创建工作目录
b. 拉取基底镜像
[root@4 ~]# docker pull debian:bullseye-slim
bullseye-slim: Pulling from library/debian
ab6b8caf16d7: Pull complete
ff7eb702e997: Download complete
Digest: sha256:cba95a21c96c1f5fc2470081829363eed57706634f7dc26e8c6712934303d57a
Status: Downloaded newer image for debian:bullseye-slim
docker.io/library/debian:bullseye-slim
1. 制作jdk镜像¶
制作jdkv0.1
FROM debian:bullseye-slim
LABEL maintainer='wen@wen.qq.com'
WORKDIR /usr/local/
ADD jdk-21_linux-x64_bin.deb .
[root@4 tcimage]# docker build -t jdk21:v0.1 .
[root@4 tcimage]# docker run -itd --name myjdk jdk21:v0.1 bash
ed1c42e26eb416a0fd2cbd9ddbd7c418ce53398de66dc275b2659085a9bd3421
[root@4 tcimage]# docker exec -it myjdk bash
root@ed1c42e26eb4:/usr/local# ls
bin etc games include jdk-21_linux-x64_bin.deb lib man sbin share src
root@ed1c42e26eb4:/usr/local#
2. 制作v1.1版本¶
FROM debian:bullseye-slim
LABEL maintainer='wen@wen.qq.com'
WORKDIR /usr/local/
# 每次下载太浪费时间,直接在宿主机下载后ADD进去
# ADD https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.deb .
ADD jdk-21_linux-x64_bin.deb .
# 安装jdk-21
RUN dpkg -i jdk-21_linux-x64_bin.deb && \
# 删除jdk-21安装包,用于镜像瘦身
rm -rf jdk-21_linux-x64_bin.deb
# 添加到环境变量
ENV JAVA_HOME=/usr/lib/jvm/jdk-21.0.11-oracle-x64
ENV PATH=$JAVA_HOME/bin:$PATH
# 执行 docker build -t 镜像名:tag -f dockerfile位置 制作镜像
# docker run -itd --name myjdk jdk21:v1.0 bash && docker exec -it myjdk bash制作并开启镜像
[root@4 tcimage]# docker run -itd --name myjdk jdk21:v1.0 bash && docker exec -it myjdk bash
9cfc4e5cf687f8383a0676bec61b558696471cc3d4346d4c321c06c111638765
root@9cfc4e5cf687:/usr/local# echo $PATH
/usr/lib/jvm/jdk-21.0.5-oracle-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
三. 制作tomcat镜像¶
1. 下载tomcat安装包¶
[root@4 tcimage]# wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.24/bin/apache-tomcat-11.0.24.tar.gz
[root@4 tcimage]# ls
apache-tomcat-11.0.24.tar.gz dockerfile jdk-21_linux-x64_bin.deb
2. 制作tomcat镜像¶
a. 编写dockerfile文件
FROM jdk21:v1.1
# ADD wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.24/bin/apache-tomcat-11.0.24.tar.gz .
# wget不一定成功,改从宿主机复制
WORKDIR /usr/local/
ADD apache-tomcat-11.0.24.tar.gz .
# 启动tomcat
ENTRYPOINT ["/usr/local/apache-tomcat-11.0.24/bin/catalina.sh"]
# 类似于nginx需要加上run参数才能一直运行
CMD ["run"]
# 暴露端口是外部的8080
EXPOSE 8080
# 执行 docker build -t 镜像名:tag -f dockerfile位置 . 制作镜像
# 执行docker run -d -p 18080:8080 tomcat:v1.0就可以运行镜像了
b. 利用dockerfile制作镜像
c. 制作容器验证
[root@4 tcimage]# docker run -d -p 18080:8080 tomcat:v1.5
[root@4 tcimage]# curl http://192.168.100.102:18080/
<!DOCTYPE html>
<html lang="en">
<head>
...
