docker + nginx +微信小程序后台 (springboot)

1.资源环境

阿里云ecs服务器、centos8 系统 、 docker 2.0 、nginx 、微信小程序、 springboot jar包 、ssl证书、 已备案的域名 www.dan-huang.cn

2.centos8 中安装docker

卸载原有docker环境
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装所需的软件包
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

配置阿里云源地址
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装最新版docker
yum install docker-ce docker-ce-cli containerd.io


启动docker
systemctl start docker

3.docke 中安装nginx

3.1.拉取最新版nginx 镜像
docker  pull  nginx

3.2.创建nginx  容器
docker run -d   -p 80:80  -p 443:443   --name nginx nginx

3.3.进入容器内部
docker exec -it   容器名或容器id   /bin/bash

3.4.将ssl证书复制到容器中
从宿主机器中复制文件到容器中:  /usr/local/software/docker_nginx/nginx/conf.d/cert  宿主机器文件路径     c63be682d8eb: 容器id      /etc/nginx  容器中路径
注意: 证书需要放在nginx文件夹下面
docker cp  /usr/local/software/docker_nginx/nginx/conf.d/cert  c63be682d8eb:/etc/nginx


3.5.宿主机器上新建nginx https  配置文件  my.conf   (文件名不固定、文件后缀名固定)
文件内容详解

server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.dan-huang.cn; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/8146294_www.dan-huang.cn.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/8146294_www.dan-huang.cn.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    #ssl_prefer_server_ciphers on;
  
    location ~* .*\.html$ {   #静态资源配置
        root /etc/nginx/html;
        index index.html;
    }
    location   /subapi/ {    # 匹配访问路径中含subaoi的请求
       proxy_pass  http://172.17.0.3:8080/;       # 匹配接口示例 :   172.17.0.3 容器ip地址    https://www.dan-huang.cn/subapi/subapp/quartz/test (前端接口路径)  :   http://172.17.0.3:8080/subapp/quartz/test  (后台匹配的路径)
      
    }
}



3.6.将配置文件复制到容器conf.d  文件夹下


docker cp  /usr/local/software/docker_nginx/nginx/conf.d/my.conf  c63be682d8eb:/etc/nginx/conf.d



3.7.重启nginxr容器


docker stop  容器名/容器id
docker start  容器名/容器id

4.打包springboot jar包 、 编写Dockerfile 文件 metro-reservation-0.0.1.jar :打包文件名

4.1.Dockerfile 文件内容

FROM java:8
EXPOSE 8080

VOLUME /tmp
ADD metro-reservation-0.0.1.jar /app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]



4.2.将Dockerfile文件、jar包上传到宿主机器上,执行一下命令,生成镜像文件

docker build -f ./Dockerfile -t app .   


4.3.创建并启动容器   subapp :自定义容器名   subappdocker: 镜像名称

docker run -d -p 8081:8080 --name subapp  subappdocker

踩坑记录:

1.centos  版本内核可能不支持最新版的docker 出现 runc报错:可以尝试执行一下语句
yum -y install libseccomp containerd

2.ssl 证书 新用户可以从阿里云服务器免费获取;
nginx  配置证书需要下载对应nginx证书
当时下了tomcat证书导致微信小程序体验版无法访问接口,出现如下错误:
证书来源: 缺失证书
状态: 错误:服务器缺少中间证书

3.检验容器之间的网络通信:
容器内安装ping命令
apt-get update

apt install iputils-ping

apt install net-tools


容器内安装telnet服务

apt-get update

apt-get install  telnet


4.查看容器的ip地址:
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)     获取所有容器ip
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值