一:常用命令
1.docker compose restart//重启
2.docker compose down// 停止
3.docker compose ps//列出
4.sudo docker-compose up -d 启动并且在后台运行
二:yaml配置文件
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5-arm64
restart: always
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
minio:
container_name: milvus-minio
image: minio/minio:latest
restart: always
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/volumes/minio:/minio_data
command: minio server /minio_data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:latest
restart: always
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
swappiness: 0
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/conf/milvus/milvus.yaml:/milvus/configs/milvus.yaml
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
doc_mongodb:
image: artifacts.iflytek.com/docker-private/aimind/mongo:4.2.6
container_name: doc_mongodb
volumes:
- "/data/docqa/data/mongo/configdb/:/data/configdb/"
- "/data/docqa/data/mongo/data/db/:/data/db/"
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME=aimind
- MONGO_INITDB_ROOT_PASSWORD=mongoforaimind2021
ports:
- "27017:27017"
doc-minio:
container_name: doc-minio
image: minio/minio:latest
restart: always
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/minio/data:/data
- ${DOCKER_VOLUME_DIRECTORY:-.}/data/minio/config:/root/.minio
command: server /data --console-address ":9090"
ports:
- "9001:9000"
- "9090:9090"
doc_es:
image: artifacts.iflytek.com/docker-private/aimind/elasticsearch:8.4.1
container_name: doc_es
volumes:
- "/data/docqa/data/esdata/:/usr/share/elasticsearch/data"
- "/data/docqa/conf/elasticsearch/plugins/:/usr/share/elasticsearch/plugins/"
ports:
- "19300:9300"
- "19200:9200"
restart: always
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms256m -Xmx16g"
- xpack.security.enabled=false
- bootstrap.memory_lock=true
- cluster.routing.allocation.disk.threshold_enabled=false
ulimits:
memlock:
soft: -1
hard: -1
doc_backend:
depends_on:
- etcd
- minio
- standalone
- doc_mongodb
- doc_es
image: artifacts.docqa:test.556
container_name: doc_backend
environment:
- "SPRING_PROFILES_ACTIVE=dev"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/usr/bin/docker:/bin/docker"
- "/data/docqa/data/docqa/:/mnt/parastor/aimind"
- "/data/docqa/conf/backend/application-dev.yml:/home/doc/application-dev.yml"
ports:
- "8906:8906"
restart: always
doc_frontend:
depends_on:
- doc_backend
image: artifacts.frontend-test:0.0.1-aimind--light-test.51
container_name: doc_frontend
volumes:
- "/data/docqa/conf/frontend/nginx.conf:/etc/nginx/nginx.conf"
ports:
- "30880:80"
restart: always
doc_sim:
image: artifacts.sim:1.0.0
container_name: doc_sim
ports:
- "8901:8901"
restart: always
networks:
default:
name: doc
三:关于一些常见问题
1.docker-compose 会提示找不到命令行情况之一:
V1版本是用docker-compose up
V2版本是用docker compose up
2.docker-compose 会提示找不到命令行情况之二:
检查是否在可执行文件下一般docker-compose 需要放在可执行文件下并且赋予权限
1.which docker-compose #检查是否在可执行文件下
2./usr/local/bin/docker-compose #这个地方是可执行文件位置
3.sudo chmod +x /usr/local/bin/docker-compose
3.docker-compose 会提示找不到命令行情况之三:
1.docker要求版本是18以上
2.并且要有elep环境需要先安装
3.可能有些要有python环境我的是腾讯云opencloud8不需要安装这些
4.部署好后开放防火墙
# 允许 Milvus 端口通过防火墙
sudo ufw allow 19530/tcp
sudo ufw allow 9091/tcp
三:性能调优
调整系统参数
创建 /etc/sysctl.d/99-milvus.conf 文件
# 增加文件打开数量限制
fs.file-max = 1000000
# 增加 TCP 连接数
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_syncookies = 1
# 提高网络性能
net.core.netdev_max_backlog = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 5000