栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

docker部署springBoot项目完整流程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker部署springBoot项目完整流程

进程相关
1、根据进程名查看进程信息,以查看tomcat进程名为例,查看所对应的进程id为1095
ps -ef | grep tomcat
2、根据进程id查看进程占用端口,查看对应端口为8080(如果没有netstat命令,使用 yum -y install net-tools安装)
netstat -nap | grep 1095
3、根据端口查看对应进程,查看占用8080端口的进程id,为1095
netstat -tunlp | grep 8080
4、根据进程id查看进程信息,查看进程id为1095的进程信息
ps -ef | grep 1095
安装docker

1、yum 包更新到最新

yum update

2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

3、 设置yum源

#官方
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#清华大学
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

4、 安装docker,出现输入的界面都按 y

yum install -y docker-ce docker-ce-cli containerd.io

5、 查看docker版本,验证是否验证成功

docker -v
基础命令
• 启动docker服务 systemctl start docker
• 停止docker服务 systemctl stop docker
• 重启docker服务 systemctl restart docker
• 查看docker服务状态 systemctl status docker
• 开机启动docker服务 systemctl enable docker

创建网络:docker network create my_net
查看网络:docker network ls
一:mysql
1.mkdir mysql
2.mkdir conf ,mkdir logs ,mkdir data
3.docker pull mysql
4.docker run -id -p 3306:3306 --network my_net --name=mysql -v /mnt/mysql/conf:/etc/mysql/conf.d -v /mnt/mysql/logs:logs -v /mnt/mysql/date:/var/lib/mysql --restart=always -e MYSQL_ROOT_PASSWORD=root mysql
若有需要,在conf目录中创建 my.cnf配置文件,内容如下:
[mysqld]
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’
二:redis
1.mkdir redis ,mkdir data
2.docker pull redis
3.docker run -p 6379:6379 --network my_net -v /mnt/redis/data/:/data --restart=always --name redis -d redis redis-server --appendonly yes --requirepass “123456”
命令说明:
  -p:宿主机端口与容器端口映射,前面的端口为主机映射端口(需配置服务器安全组), 后面的端口为镜像开放的端口
  -v:挂载,将容器中的redis持久化数据挂载到宿主机,避免容器重启导致的数据丢失。
  --restart=always:无论什么情况挂壁,总是重启
  --name:容器名称
  -d:使用指定的镜像,在后台运行容器
  --appendonly yes:redis运行时开启持久化
–requirepass “111111”:设置redis登陆密码

三:nginx
1.创建 目录 mkdir /mnt/nginx {cert,conf,conf.d,html,logs}
2.在conf 目录下创建 vim 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;

}
3.在conf.d目录下创建 vim default.conf
server {
listen 80;
server_name localhost;

#charset koi8-r;  
#access_log  /var/log/nginx/log/host.access.log  main;  

location / {  
    root   /usr/share/nginx/html;
    index  index.html index.htm;  

}  

#伪静态配置
#location / { try_files $uri $uri/ /index.html; }

#error_page  404              /404.html;  

# redirect server error pages to the static page /50x.html  
#  
error_page   500 502 503 504  /50x.html;  
location = /50x.html {  
    root   /usr/share/nginx/html;  
}

}
4.在 html目录下创建 vim index.html
Hello nginx
5.docker pull nginx
6.docker run --name nginx -p 80:80 -p 443:443 --network my_net -v /mnt/nginx/html:/usr/share/nginx/html -v /mnt/nginx/logs:/var/log/nginx -v /mnt/nginx/cert:/etc/nginx/cert -v /mnt/nginx/conf.d:/etc/nginx/conf.d -d --restart=always nginx
7.域名配置
server {
listen 443 ssl;
server_name wenars.com;
ssl_certificate cert/wenars.com.pem;
ssl_certificate_key cert/wenars.com.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;
root html;
index index.html index.htm;
#伪静态配置
#location / { try_files $uri $uri/ /index.html; }
location / {
proxy_pass http://wenars-app:8000;
client_max_body_size 5m;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header X-Real-IP $remote_addr;
}

location /.well-known {
root /user/share/nginx/html;
}

location /upload {
root /user/share/nginx/html;
}

location /api {
proxy_pass http://yshop-app:8008;
client_max_body_size 5m;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header X-Real-IP $remote_addr;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
四:springBoot服务
1.mkdir jar
2.vim Dockerfile

Docker image for springboot file run VERSION 0.0.1 Author: eangulee 基础镜像使用java 第一次将自动下载

FROM java:8

作者

MAINTAINER hf

VOLUME 指定了临时文件目录为/tmp。 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp

#VOLUME /tmp

将jar包添加到容器中并更名为***.jar

ADD redis-test.jar redis-test.jar

运行jar包

RUN bash -c ‘touch /redis-test.jar’
ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/redis-test.jar"]
3.制作镜像 docker build -t redis-test .
-t 参数是指定此镜像的tag名
3.启动容器
[root@localhost docker]# docker run -d -p 8080:8080 --network my_net --name redis-test redis-test --restart=always
-d参数是让容器后台运行 -p 是做端口映射,此时将服务器中的8080端口映射到容器中的8085(项目中端口配置的是8085)端口

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287443.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号