Docker部署Java服务
本文在Linux系统上操作,并默认已经安装好了docker
使用命令docker version
可查看是否安装 docker 以及 docker 版本
1、下载镜像
使用命令 docker pull 命令即可从 Docker Registry 上下载镜像,我是习惯先在 Dockerhub 上先找到需要的镜像
-
首先搜索我们需要的镜像,以java为例
-
然后点击搜索结果的java
-
在 Tags 下搜索我们需要的镜像
-
这边就可以复制出 docker pull 语句
2、目录结构
└── service
├── Dockerfile
└── app.jar
我们需要将Java项目打包后可执行的jar包上传的服务器中,并且在同级目录下创建 Dockerfile 文件
在 Dockerfile 文件中编写一下配置
# 基础镜像java
From openjdk:8-alpine
# 指定容器内工作路径
WORKDIR ic-dist
# 就是你上传的jar包的名称 添加到 镜像中
ADD app.jar dist/app.jar
# 就是在容器中以多少端口号运行
EXPOSE 8080
# 容器启动之后执行的命令,java -jar dist/app.jar 即启动jar
ENTRYPOINT ["java","-jar","dist/app.jar"]
3、使用docker build构建镜像
docker build -t app .
查看镜像
# 构建好镜像后 可以使用该命令查看镜像
docker images
4、启动镜像
# -p 主机网中映射的端口号8181:镜像容器内服务运行的端口号8080
docker run -p 8181:8080 app
# 如果服务中有数据存储之类的,比如日志文件输出,我们可以将其挂载到主机上,这样即使docker删除了,日志文件也还在
# -d 后台启动 -v 将镜像中的日志文件挂载到服务器中 -v 服务器存放目录:镜像中日志目录
docker run -d -p 8181:8080 -v /data/log:/dist/log app
查看镜像运行情况
# 该命令可以查看当前运行中的镜像
docker ps
# 如果镜像启动失败了,使用 docker ps 查看不到,可以使用该命令,查看所有镜像
docker ps -a
5、访问
前面的操作都完成后,我们就可以尝试访问了
在网址中输入 http://主机IP:8181
,可以正常访问服务即部署完成