docker部署springbot项目~~~~看完失败捶我系列

准备环境

在这里插入图片描述

java8

docker pull mykro/java8-jre

mysql

docker run -d --name mysql5.7 -p 33306:3306 -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql:5.7
本地没有此镜像,docker可以自动网上拉取。设置MySQL字符格式,和不区分大小写可以参考这篇博客。
https://blog.csdn.net/Cky079/article/details/88535536?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-8&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-8

nginx

mkdir -p /docker/nginx/conf
mkdir -p /docker/nginx/conf.d
mkdir -p /docker/nginx/html
mkdir -p /docker/nginx/logs
mkdir -p /docker/nginx/ssl #你的https 密钥放在这里
创建宿主机目录,挂载到ngin容器中
cd /docker/nginx/conf.d
vim nginx.conf
切换到配置目录创建nginx.conf配置文件。

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

   #include /etc/nginx/conf.d/*.conf;

    server {
    listen 443 ssl;
 
    server_name  wwww.xxx.cn;#你的域名
    
   
    ssl_certificate     /ssl/xxxx.pem;  #配置https 密钥的位置
    ssl_certificate_key  /ssl/xxxxx.key;
    ssl_session_timeout  5m;    
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;   
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;    
    ssl_prefer_server_ciphers on;   
    location / {
        proxy_pass http://101.132.161.32:9091/;
        proxy_set_header  Host       $host;
        proxy_set_header  X-Real-IP    $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
 }
server {
    listen 80;
    server_name  xxx.cn;#你的域名
    rewrite ^(.*)$ https://$host$1 permanent;   # 80端口转https
}
}

docker run --name mynginx -d -p 80:80 -p 443:443 -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/conf.d:/etc/nginx/conf.d -v /docker/nginx/logs:/var/log/nginx -v /docker/nginx/ssl:/ssl nginx

redis

mkdir -p /docker/redis #存放redis.conf 配置文件
mkdir -p /docker/redis/data #存放缓存数据
http://download.redis.io/redis-stable/redis.conf # redis.conf 官方配置文件。全文复制保存为redis.conf
放到 /docker/redis 目录下。
修改启动默认配置(从上至下依次):

bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问 添加 bind 0.0.0.0
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败
databases 16 #数据库个数(可选),我修改了这个只是查看是否生效。。
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)

docker run -p 63799:6379 --name myredis -v /docker/redis/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass “你的redis密码”
全部配置好,重启所有容器,刷新配置
docker restart $(docker ps -a )

附上成功图
docker部署springbot项目~~~~看完失败捶我系列_第1张图片
以上是spring boot 环境,接下来启动spring boot
docker部署springbot项目~~~~看完失败捶我系列_第2张图片
vim Dockerfile

FROM mykro/java8-jre:latest
VOLUME /tmp
ADD *.jar app.jar
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

运行 Dockerfile

docker build -f /docker/springboot/Dockerfile\  -t qa:0.1 .
-f Dockerfile 目录
-t 打包镜像名称:版本

docker部署springbot项目~~~~看完失败捶我系列_第3张图片
我的启动进行 命令 参考
docker run -d -v /docker/springboot/data/upload:/upload -v /docker/springboot/data/upload/avatar:/upload/avatar -v /docker/springboot/data/logs:/upload/logs -p 9091:9090 qa:0.1

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