文件下载
https://download.csdn.net/download/weixin_38305440/19683180
构建镜像
构建镜像类似于一台电脑的装机过程,添加文件、安装软件、配置环境…
例如构建一个 tomcat 10 镜像流程,就像在一台电脑上安装配置 tomcat 环境一样:
1.选择基础镜像 centos:8(相当于一台新电脑,只有操作系统)
2.添加 jdk 和 tomcat 文件
3.设置环境变量
4.设置开机启动 tomcat
下面来演示构建 tomcat 10 镜像的过程:
准备必要的文件
jdk 和 tomcat 10 的压缩文件放入一个文件夹中,这个文件夹不应该包含其他无关文件:
[/root/tomcat/]
- jdk-8u291-linux-x64.tar.gz
- apache-tomcat-10.0.6.tar.gz
Dockerfile
Dockerfile 类似于一个批处理文件,用来设置镜像的构建流程
在上一步的 tomcat 文件夹下创建 Dockerfile 文件:
[/root/tomcat/]
- jdk-8u291-linux-x64.tar.gz
- apache-tomcat-10.0.6.tar.gz
- Dockerfile
编辑 Dockerfile 文件
cd /root/tomcat
vim Dockerfile
在文件中添加以下内容:
# 选择基础镜像
FROM centos:8
# jdk 和 tomcat 文件添加到镜像的 /usr/local/ 目录下
# ADD 指令会自动解压文件
ADD jdk-8u291-linux-x64.tar.gz apache-tomcat-10.0.6.tar.gz /usr/local/
# 切换到镜像中指定的文件夹下
WORKDIR /usr/local/apache-tomcat-10.0.6/
# 设置环境变量
ENV JAVA_HOME=/usr/local/jdk1.8.0_291 \
CATALINA_HOME=/usr/local/apache-tomcat-10.0.6 \
PATH=/usr/local/jdk1.8.0_291/bin:/usr/local/apache-tomcat-10.0.6/bin:$PATH
# EXPOSE 8080 只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
# 这个声明有两个好处:
# 1.帮助镜像使用者理解这个镜像服务的端口,以方便配置映射
# 2.在运行时使用随机端口映射时,也就是 docker run -P时,会自动随机映射 EXPOSE 的端口
EXPOSE 8080
# 设置启动命令
CMD ["catalina.sh", "run"]
Dockerfile 指令参考手册:
https://docs.docker.com/engine/reference/builder/
执行构建
进入 tomcat 文件夹,并在当前文件夹下找到 Dockerfile 和其他需要的文件,来构建镜像:
cd /root/tomcat
# 使用当前文件夹中的 Dockerfile 文件进行构建
# 新构建的镜像命名为 tomcat:10
docker build -t tomcat:10 ./
查看构建结果:
docker images
docker history tomcat:10
docker inspect tomcat:10
启动容器
docker run -d --name cat1 -p 8080:8080 tomcat:10
docker ps -a
docker logs cat1
浏览器访问测试:
http://192.168.64.150:8080