使用docker发布springboot项目并使用nginx配置域名进行访问

仅做笔记,也可参考!!

一、在你的linux系统中安装docker

二、使用idea创建springboot项目,并打成jar包

三、写一个Dockerfile文件,并命名为:Dockerfile,文件内容如下:

# 基础镜像使用java
FROM openjdk:8-jdk-alpine
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD springboot项目打成jar包的名称,例:a.jar app.jar
# 运行jar包
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

四、把Dockerfile文件和springboot项目打成的jar包,放入linux中的同一目录,在此目录下执行

docker build -t ${你要打成镜像的名称} .

例:docker build -t game .

五、上述命令执行完毕之后,使用docker images命令,会看到有两个镜像,openjdk:8-jdk-alpine,game

六、下载nginx镜像,docker pull nginx:latest   

七、创建容器:

先创建文件夹:mkdir /data/nginx/conf.d/,然后执行下述命令创建容器:

docker run -d -p 80:80 -v /data/nginx/conf.d/:/etc/nginx/conf.d/ --name nginx1 nginx

docker run -d -p 8080:8080 --name game1 game

容器创建完成之后,执行docker ps, 会发现两个运行着的容器

八、配置域名,并配置nginx

阿里云或者腾讯云买一个域名,并实名认证,等到DNS解析正常之后,配置DNS解析

此处以阿里云为例,进入阿里云域名解析,点击解析设置,点击解析设置中的新手引导,直接添加你的记录值,注意此记录值为你安装nginx服务器的外网ip,添加完成即可:

使用docker发布springboot项目并使用nginx配置域名进行访问_第1张图片

 

配置nginx:

在/data/nginx/conf.d/文件夹中创建以   .conf  结尾的配置文件,文件内容如下:

upstream game {
                                        ip_hash;
                                        server 服务器公网ip:8080;
                                }



server {
                        listen     80;
                        server_name 配置的域名;

                        location / {
                                proxy_set_header REMOTE-HOST $remote_addr;
                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                proxy_set_header X-Real-IP $remote_addr;
                                proxy_set_header Host $host;
                                proxy_connect_timeout 3;
                                proxy_send_timeout 30;
                                proxy_read_timeout 30;
                                index  index.html index.htm;
                                proxy_pass http://game;
                                rewrite ^/(.*)/$ /$1 last;
                        }
        }

 九、配置完成nginx之后,需要重启nginx1容器,

docker restart nginx1

⑩、到这一步按说应该完成了,但是有的还是不能进行访问,这是因为防火墙的问题。

如果你的防火墙关了,访问没有问题,但是如果开着,你又不想把防火墙关了,那就开放端口吧!

永久开放端口命令:

firewall-cmd --zone=public --add-port=8080/tcp --permanent

firewall-cmd --zone=public --add-port=80/tcp --permanent

十一、浏览器访问你的域名,加上你代码中配置的地址,就可以正常访问了,环境搭建完成,在springboot项目中尽情写你的代码吧!

 

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