在Java程序打包后如何制作成docker镜像,通过docker部署项目。下面我们直接进入正题。
-如何安装docker可以参考官方文档
docker安装教程:https://docs.docker.com/engine/install/centos/
- 创建Dockerfile文件
不用加文件扩张名
# 这里固定这样写就行
FROM adoptopenjdk:8-jdk-hotspot
# 设置工作目录,docker里面服务的所在路径
WORKDIR /vwm
# 把 jar 文件复制到容器中
COPY vwm.jar vwm.jar
# 暴露端口号(根据你的 java 应用的端口进行替换)
EXPOSE 9000
# 启动应用,这里配置Java启动传输
ENTRYPOINT ["java", "-jar", "-Xms1024m", "-Xmx1024m", "-XX:MetaspaceSize=256M", "-XX:MaxMetaspaceSize=256M", "vwm.jar"]
- 打包docker镜像
进入到Dockerfile
文件所在的目录,执行以下命令,把jar打包成docker镜像。
docker build -t vwm .
docker build -t [
镜像名自定义
] . ,记住后面必须跟一个英文的.
查看编译后的镜像
- 启动服务
docker run --restart=always --name=vwmServer -p 9000:9000 -v /www/component/vwm/logs:/vwm/logs -v -d vwm
docker run
[--restart=always:设置开机自启,可选
]
[--name=vwmServer:服务名可以自定义
]
[-p 9000:9000:器端口映射到主机的端口,通过主机的端口可以访问到虚拟机服务
]
[-v /www/component/vwm/logs:/vwm/logs:文件映射,我的Java程序配置了logs文件目录
]
[-d vwmServer:镜像
]
如果是简单的运行可以省略多余的参数运行下面的命令
docker run --name=vwmServer -d vwm
- 查看启日志
docker logs 86e69706733a
docker logs [86e69706733a:容器ID
]
- 把镜像复制出来,到其他docker上运行
- 把镜像拷贝出来,
docker save -o [文件名] 镜像名
,拷贝出来的文件扩张名是.tar
docker save -o image.tar image_name
- 把文件导入到docker 里面
docker load -i image.tar
docker load -i image.tar
- 其他命令
docker images
查看镜像
docker ps -a
查看所有容器服务
docker start 86e69706733a
启动服务
docker stop 86e69706733a
停止容器服务
docker rm 86e69706733a
删除容器服务
更多指令请参考官方文档:https://docs.docker.com/reference/cli/docker/container/