后端程序员真太不容易了自己写的代码还得自己让跑起来,不接受反驳。干这个活我全程都在想我是个写代码的部署的活为什么让我搞,真是一个脑袋三个大。
本着做难事必有所得的信念,艰难完成了就这还得要去给客户部署到生产环境
本文前提已有docker环境纯新手先学学docker
一、下载docker-compose
https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64
将安装包传到服务器
sudo mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
二、新建docker-compose.yml文件
version: '3'
services:
mysql-master:
image: mysql:5.7.36
container_name: mysql-master
restart: always
network_mode: host
volumes:
- /home/mysql/mysql-master/config:/etc/mysql/
- /home/mysql/mysql-master/data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
redis-master:
image: redis:6.2.6
container_name: redis-master
restart: always
network_mode: host
volumes:
- /home/redis/data:/data
- /home/redis/conf/redis.conf:/etc/redis/redis.conf
command: redis-server /etc/redis/redis.conf
nginx:
image: nginx:1.20.0
container_name: nginx
restart: always
network_mode: host
volumes:
- /home/nginx/html:/usr/share/nginx/html
- /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /home/nginx/logs:/var/log/nginx
keepalived:
image: osixia/keepalived:2.0.20
container_name: keepalived
restart: always
network_mode: host
volumes:
- /etc/localtime:/etc/localtime
environment:
KEEPALIVED_INTERFACE: 'eth0'
KEEPALIVED_PASSWORD: '123456'
KEEPALIVED_STATE: 'MASTER'
KEEPALIVED_ROUTER_ID: '51'
KEEPALIVED_PRIORITY: '110'
KEEPALIVED_UNICAST_PEERS: "#PYTHON2BASH:['10.165.131.94','10.165.131.65']"
KEEPALIVED_VIRTUAL_IPS: '10.165.131.201'
三、使用docker-compose启动
docker-compose up -d
四、查看已启动的容器
docker ps