目录
使用maven将java应用打包
打包成功后,打开该模块的Explorer
找到target文件,双击进入
target里面就有jar包
将jar包和Dockerfile放到虚拟机指定目录(自己指定,反正自己要知道在哪个目录)下
Dockerfile内容
# 基础镜像
FROM openjdk:11.0-jre-buster
# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY 你的jar包名称.jar /app.jar
# 入口
ENTRYPOINT ["java", "-jar", "/app.jar"]
注意
基础镜像部分,jdk版本要根据自己java应用的版本,如果打包的java应用是jdk17版本的,在基础镜像部分,应该将11改成17。
# 基础镜像
FROM openjdk:17
拷贝jar包部分,jar包名称改成自己的jar包。Dockerfile,通常没有文件扩展名,文件名应该直接为 Dockerfile,建议直接在idea中创建
构建镜像
在对应目录下执行命令(后面的点代表在当前目录下构建)
docker build -t 项目名称 .
如果构建的时候报错ERROR [internal] load metadata for docker.io/library/openjdk:11.0-jre-buster
使用如下命令配置镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
构建成功
检查
查看镜像,就会发现多了一个自己刚刚构建的一个镜像
为该镜像创建容器,并加入与mysql相同的网络,这样这两个容器就可以互连
查看日志,检查容器是否启动
能看到spring的标志,说明启动成功了