docker 运行 Sentinel Dashboard java程序
当前的目录显示
[root@VM-0-10-centos sentinel]# ll
total 24332
-rw-r--r-- 1 root root 235 Dec 19 17:55 Dockerfile
-rw-r--r-- 1 root root 24909355 Dec 19 19:05 sentinel-dashboard.jar
[root@VM-0-10-centos sentinel]#
Dockerfile 文件 内容
[root@VM-0-10-centos sentinel]# cat Dockerfile
FROM openjdk:8
ENV TZ=Asia/Shanghai
MAINTAINER ywj
COPY ./sentinel-dashboard.jar /home/sentinel/sentinel-dashboard-nacos/sentinel-dashboard.jar
WORKDIR /home/sentinel/sentinel-dashboard-nacos
EXPOSE 8080
ENTRYPOINT ["java","-jar","sentinel-dashboard.jar"]
[root@VM-0-10-centos sentinel]#
FROM openjdk:8 ----表示基于openjdk:8 镜像,需要先使用docker pull openjdk:8 下载镜像
ENV TZ=Asia/Shanghai -------设置时区
MAINTAINER ywj ----声明作者
COPY ./sentinel-dashboard.jar /home/sentinel/sentinel-dashboard-nacos/sentinel-dashboard.jar ---- 将程序拷贝到镜像中的指定目录下
WORKDIR /home/sentinel/sentinel-dashboard-nacos ----- 声明工作目录
EXPOSE 8080 ----- 声明暴露的端口
ENTRYPOINT [“java”,"-jar",“sentinel-dashboard.jar”] ------- 运行Java 启动的命令
我的jar 启动时需要nacos config server 的配置 ,所以可能你们会启动有问题
然后 构建镜像
#构建镜像
docker build -t sentinel-dashboard:nacos .
#启动
docker run -d -p 8080:8080 --name sentinel-dashboard sentinel-dashboard:nacos
docker-compose启动 方式
配置文件
[root@VM-0-10-centos sentinel]# cat sentinel-nacos.yaml
version: "3.8"
networks:
default:
external:
name: docker_net
services:
sentinel:
image: sentinel-dashboard:nacos
container_name: sentinel-dashboard-nacos
volumes:
- /home/sentinel/sentinel-dashboard-nacos/logs:/home/sentinel/sentinel-dashboard-nacos/logs
ports:
- "8080:8080"
[root@VM-0-10-centos sentinel]#
上面我自己搭建了一个网络
#创建网络
docker network create --subnet=172.24.0.0/16 --gateway=172.24.0.1 docker_net
注意:如果映射的路径中包含jar (镜像内),因为正在运行,所以就会导致说Unable access xxx.jar 所以映射文件的路径还是小心一点,我在网上找的和我的情况都不符合
注意下面的路径,如果- /home/sentinel/sentinel-dashboard-nacos/:/home/sentinel/sentinel-dashboard-nacos/ 会报错
volumes:
- /home/sentinel/sentinel-dashboard-nacos/logs:/home/sentinel/sentinel-dashboard-nacos/logs