docker部署springboot项目并且连接mysql容器、nacos容器、sentinel容器

一、操作步骤

1、在操作之前首先要准备mysql、nacos、sentinel容器都已经具备。mysql和nacos容器的构建请参考这里https://blog.csdn.net/zhaoydzhaoyd/article/details/105792964

2、构建sentinel容器:

(1)首先在linux主机的空目录下面创建Dockerfile文件

# 基础镜像使用Java
FROM java:8
# 作者
MAINTAINER zyd
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD sentinel-dashboard-1.7.0.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Dserver.port=8088","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

#-Dserver.port=8088此处启动指定了端口,需要默认可以去掉

# 指定容器需要映射到主机的端口
EXPOSE 8088

 (2)开始build镜像

使用docker image build -t sentinel .  ##此处的名称可以随便命名 后面有一个.  

注意:Dockerfile所在的目录下面尽量不要有其他文件,不然会一起打包

(3)运行容器

docker run -d -p 8088:8088 --name sentinel sentinel

运行之后就可以使用ip:8088访问sentinel的控制台了

3、到此sentinel的容器化已经部署完成了,接下来开始springboot项目的配置

(1)首先在使用 docker inspect mysql | grep IPAddress 查看mysql、nacos、sentinel容器的ip地址

查出来后将之前的配置ip换成容器ip地址即可

(2)地址配置完成后将项目打成jar包后开始构建Dockerfile文件  注意:将jar包上传到和Dockerfile通一个目录且目录下面没有其他文件。

# 基础镜像使用Java
FROM java:8
# 作者
MAINTAINER zyd
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD microservice-psychological-dbSource-0.0.1-SNAPSHOT.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 指定容器需要映射到主机的端口
EXPOSE 7500

(3)开始构建镜像

docker image build -t dbsource .

(4)使用docker images可以查看到构建后的所有镜像

docker部署springboot项目并且连接mysql容器、nacos容器、sentinel容器_第1张图片

 然后开始使用镜像运行容器

docker run -d -p 7500:7500 --name dbsource dbsource

 可以使用 docker logs --since 30m dbsource 查看启动日志

(5)到此springboot的项目就搞成容器部署上去了,可以到nacos注册中心看是否注册上去

可以看到项目已经成功注册到nacos注册中心了

二、使用link方式连接mysql

1、再刚才的基础上可以使用以下命令

docker run --rm -d -p 7500:7500 --name dbsource--link mysql:mysql dbsource

##link后面的mysql名称和创建mysql容器时的要一致,不然无法连接

然后再工程中要使用别名的方式连接数据库

 2、到此所有的关于docker配置springboot项目的内容已经完成。

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(docker,springboot)