Docker容器化部署SpringBoot
产品需要,项目需要部署到各个项目地的服务器上,鉴于之前一直是tomcat部署,现在改换为(Windows环境下)docker容器化部署。docker-compose编排redis+nginx+mysql+tomcat !
1.Windows10且os版本必须大于18362
2.开启hyper-v(步骤如下)
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
用管理员身份运行该文档,如下图:
等待脚本执行,最后需要输入Y来进行电脑重启。重启完即可
验证
进入cmd窗口查看docker是否安装成功。(dicker --version)
{
"experimental": false,
"debug": true,
"registry-mirrors": [
"https://xxxxxx.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
]
}
到这里你的windows版的docker安装配置的差不多了,只要你的docker for windows开启且正在运行,那么你就可以直接在cmd里面进行镜像的拉取,启动等等一些同于linux里面的操作。且命令行和linux里面一样
这是我写的一个docker-compose.yml
version: "3"
services:
nginx: # 服务名称,用户自定义
restart: always
image: nginx:latest # 镜像版本
container_name: DockerNginx
environment:
# 设置环境变量 时区上海
- TZ=Asia/Shanghai
ports:
- 80:80 # 暴露端口
volumes: # 挂载
- ./root/nginx/html:/usr/share/nginx/html
- ./root/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./root/nginx/logs:/var/log/nginx
- ./root/nginx/logs:/etc/nginx/logs
privileged: true # 这个必须要,解决nginx的文件调用的权限问题
mysql:
restart: always
image: mysql:5.7.27
container_name: DockerMysql
ports:
- 3306:3306
environment: # 指定用户root的密码
- TZ=Asia/Shanghai
- MYSQL_DATABASE=root
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_ROOT_HOST= '%'
volumes:
- ./root/mysql/db:/var/lib/mysql
- ./root/mysql/conf/my.cnf:/etc/mysql/my.cnf
- ./root/mysql/log:/var/log/mysql/
redis:
restart: always
image: redis:6.0.12
container_name: DockerRedis
ports:
- 6379:6379
environment:
# 设置环境变量 时区上海 编码UTF-8
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
volumes:
- ./root/redis:/data #挂载/docker-compose/redis/data至容器
- ./root/redis/conf/redis.conf:/etc/redis/redis.conf #挂载conf至容器
command: redis-server /etc/redis/redis.conf
vueblog:
image: tomcat:8.5.37
container_name: DockerTomcat
ports:
- "8080:8080"
restart: always
environment:
- TZ=Asia/Shanghai
- JAVA_OPTS=-Xmx256m -Xms256m
entrypoint:
- "catalina.sh"
- "run"
volumes:
- ./tomcat-web/webapps/express_sorting.war:/usr/local/tomcat/webapps/sorting_web.war
- ./tomcat-web/logs:/usr/local/tomcat/logs
- ./tomcat-web/webapps/ROOT/melon_upload/sorting:/usr/local/tomcat/webapps/melon_upload/sorting
- ./tomcat-web/webapps/ROOT/melon_upload/logs:/usr/local/tomcat/webapps/melon_upload/logs
depends_on: # 依赖与mysql、redis,其实可以不填,默认已经表示可以
- mysql
- redis
这里是你的springboot项目的配置文件,里面的mysql和redis的ip直接更替为你的镜像就行。
关于nginx
1.将你的前端打包后的项目放到如下:
2.修改过配置的nginx.conf文件放到F:\root\nginx下
关于mysql
关于redis
关于tomcat
**注意:**你的docker-compose.yml在哪个盘,你就在cmd里切换到那个盘下。然后开始你的命令之旅
上面的步骤完成后
你可以在cmd里输入 docker-compose up -d 命令
然后再没有报错的情况下等待你的那些镜像下载完成且启动
之后你就可以在本机开始访问你的程序了
docker for window界面展示
然后这个软件里还有给docker分配空间及内存的,可以自己去网上看看研究下。
记录记录记录,你们可以参考下,有问题得自己去摸索。
2021/4/12