应用场景
当前项目为springboot项目,运用有mysql mongodb redis nginx mqtt等组件由于常规部署相对复杂,现需要简单的本地部署方式以达到快速部署的效果
方案
主机为windows,利用VMware将整套环境搭建好,后续直接做虚拟机移植
实施
安装VMware
下载VMware
下载安装centos的操作系统镜像
运行虚拟机
设置虚拟机固定ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=”static” #dhcp改为static
ONBOOT=”yes” #开机启用本配置
IPADDR=192.168.1.200 #静态IP
GATEWAY=192.168.1.1 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=192.168.1.1 #DNS 配置
注意:IPADDR需要和本主机处于同一个网段,找一个不存在的IP设置即可。
安装docker并设置开机自启动
docker设置bridge网络,保证各容器间通信
$ docker network create my-net
docker 安装mysql
docker pull mysql
创建mysql数据挂载目录
启动mysql 挂载数据卷并配置网络 rootpwd123 设置开机自启动
docker run –name mysql –restart=always –network=my-net -v /zx_feed/mysql/conf:/etc/mysql/conf.d -v /zx_feed/mysql/logs:/logs -v /zx_feed/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootpwd123 -d -i -p 3306:3306 mysql:latest
进入mysql容器,并登陆mysql 设置远程访问开启
- docker exec -it mysqlserver bash
- mysql -uroot -p
- ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
- flush privileges;
安装mongodb adminpwd123
创建mongo数据挂载文件夹
- docker pull mongo
- docker run -d -p 27017:27017 –restart=always –network=my-net -v /zx_feed/mongodb/config:/data/configdb -v /zx_feed/mongodb/data:/data/db –name mongo -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=adminpwd123 mongo –auth
安装redis kaide0630pwd
- 创建redis数据挂载文件夹 /zx_feed/redis
- docker pull redis
- docker run -d -p 6379:6379 –network=my-net -v /zx_feed/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /zx_feed/redis/data:/data –privileged=true –restart=always –name redis redis:latest /usr/local/etc/redis/redis.conf
安装mqtt服务器
拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6
- –name 名字
- 1883:MQTT 协议端口
- 8883:MQTT/SSL 端口
- 8083:MQTT/WebSocket 端口
- 8080:HTTP API 端口
- 18083:Dashboard 管理控制台端口
- -d 指定容器
docker run -itd –network=my-net –name mqtt -p 8883:18083 -p 8884:1883 –restart=always registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6
安装nginx
拉取镜像 docker pull nginx
配置文件随便找改下
挂载
docker run
–network=my-net
–name nginx
–restart=always
-d -p 80:80
-d -p 443:443
-v /zx_feed/nginx/html:/usr/share/nginx/html
-v /zx_feed/nginx/conf.d:/etc/nginx/conf.d
-v /zx_feed/nginx/logs:/var/log/nginx
nginx
docker安装部署springboot项目
编写Dockerfile
`FROM openjdk:8u201-jdk-alpine
ENV LANG zh_CN.UTF-8
ENV TZ=Asia/Shanghai
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo “Asia/Shanghai” > /etc/timezone
CMD [“sh”,”-c”,”/data/startServer.sh”]
`
上传jar包 以及 Dockerfile
制作容器
docker build -t eladmin-system .
docker run -dit –network=mydocker /zx_feed/java:/data –name zx_feed_server -p 8403:8403 zx_feed_images