安装
#版本安装
sudo curl -L https://github.com/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#bash 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
root@ipc-H410M-S2-V2:/aibox/docker_compose# ./build.sh
## ------ 一键化部署【开始】 ------ ##
## ------ load 镜像包 ------ ##
## ------ 停止docker-compose服务 ------ ##
## ------ 构建docker-compose服务 ------ ##
## ------ 启用docker-compose服务 ------ ##
## ------ 一键化部署【结束】 ------ ##
version: '3' --首行,描述执行docker-composer的规则版本号,现在用我的是3版本
services: --例出我要编排的所有服务,即把每个容器看作一个服务,取一个别名
nginx: --我给前端服务取名nginx
restart: always --这里表示如果容器意外退出,会让它自动重启
image: 192.168.1.14/material-management/nginx:latest --来自我们基础镜像
container_name: mynginx --取一个容器名
network_mode: "service:nacos" --加入nacos这个服务的网络,它们用同一IP,这是我投机取巧的实现,看最下描述
privileged: true --让容器用特权,这样挂载的目录或文件进行创建,执行不会报权限相关错误
cap_drop: --下面也是权限相关,用于介绍 关闭所有权限并赋予特定权限
- ALL
cap_add:
- CHOWN
- DAC_OVERRIDE
- SETGID
- SETUID
volumes: --挂载特定目录或文件
- /data/nginx/etc/nginx.conf:/etc/nginx/nginx.conf --如果是文件,记录提前写好目录中,不然会生成为同名目录
- /data/nginx/log/:/var/log/nginx
- /data/nginx/www/:/var/www
nacos:
image: 192.168.1.14/common/nacos:fengshun
container_name: mynacos
restart: always
networks:
- mynetwork
ports: --开放这些端口,因为我让下面这些容器都加入这个网络共用同一IP,属于我个人投机操作
- 80:8080
- 8080:8080
- 8081:8081
- 8088:8088
- 8848:8848
- 6379:6379
- 9876:9876
- 10909:10909
- 10911:10911
rocketmq-server: --rocketmq的命名服务
image: 192.168.1.14/common/rocketmq:namesvr
container_name: rocketmq-server
restart: always
volumes:
- /data/rocketmq-server/:/etc/rocketmq/
network_mode: "service:nacos"
rocketmq-broker:
image: foxiswho/rocketmq:broker
container_name: rocketmq-broker
restart: always
environment:
NAMESRV_ADDR: "localhost:9876"
JAVA_OPTS: " -Duser.home=/opt"
JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
command: mqbroker -c /etc/rocketmq/broker.conf
volumes:
- /data/rocketmq-broker/broker.conf:/etc/rocketmq/broker.conf
network_mode: "service:nacos"
depends_on:
- rocketmq-server --等rocketmq的命名服务启动后再创建
minio:
image: 192.168.1.14/common/minio:fengshun
container_name: myminio
restart: always
cap_add:
- ALL
volumes:
- /data/miniodata:/data
network_mode: "service:nacos"
redis:
image: 192.168.1.14/common/redis:latest
container_name: myredis
restart: always
network_mode: "service:nacos"
volumes:
- /data/redisdata:/data
file-server:
image: 192.168.1.14/material-management/file-server:pre-1.2.6-SNAPSHOT
container_name: file-server
restart: always
volumes:
- /data/logs/filelog/:/tmp/mclog/
network_mode: "service:nacos"
privileged: true
cap_add:
- ALL
depends_on:
- minio --等minio服务启动后再创建
- nacos --等nacos的注册中心启动后再创建
msg-server:
image: 192.168.1.14/material-management/message-server:pre-1.2.9-SNAPSHOT
container_name: msg-server
restart: always
volumes:
- /data/logs/msglog:/tmp/mclog/
network_mode: "service:nacos"
privileged: true
cap_add:
- ALL
depends_on:
- redis
- nacos
log-server:
image: 192.168.1.14/material-management/log-server:pre-1.2.9-SNAPSHOT
container_name: log-server
restart: always
privileged: true
cap_add:
- ALL
volumes:
- /data/logs/loglog/:/tmp/mclog/
network_mode: "service:nacos"
depends_on:
- nacos
gateway-server:
image: 192.168.1.14/material-management/gateway-server:pre-1.2.9-SNAPSHOT
container_name: gateway-server
restart: always
privileged: true
volumes:
- /data/logs/gatewaylog/:/tmp/mclog/
network_mode: "service:nacos"
cap_add:
- ALL
depends_on:
- nacos
networks: --创建一个docker 网络
mynetwork:
name: 'mynetwork' --命名网络
external: false
driver: bridge --采取桥接,还有HOST,就是跟随宿主机的IP
文档更新时间: 2023-12-18 03:25 作者:JeffreyCheung