version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/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
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
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:v2.4.5
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
要手动拉取并导入到本地 Docker 服务,你可以按照以下步骤操作:
1. 手动拉取 Docker 镜像
你需要先从其他地方(如本地网络能够访问的机器,或有镜像加速器的环境)手动拉取所需的 Docker 镜像。以下是你需要的镜像:
quay.io/coreos/etcd:v3.5.5
minio/minio:RELEASE.2023-03-20T20-16-18Z
milvusdb/milvus:v2.4.5
在能够访问 Docker Hub 或其他镜像仓库的机器上执行以下命令:
docker pull quay.io/coreos/etcd:v3.5.5
docker pull minio/minio:RELEASE.2023-03-20T20-16-18Z
docker pull milvusdb/milvus:v2.4.5
2. 导出镜像到本地文件
一旦拉取成功,你可以将镜像导出为 .tar
文件,这样可以通过文件传输的方式,将镜像传输到你的服务器上。
使用 docker save
命令将镜像保存为 .tar
文件:
docker save -o etcd_v3.5.5.tar quay.io/coreos/etcd:v3.5.5
docker save -o minio_v2023.tar minio/minio:RELEASE.2023-03-20T20-16-18Z
docker save -o milvus_v2.4.5.tar milvusdb/milvus:v2.4.5
3. 传输镜像文件到目标机器
将保存的 .tar
文件通过 scp
或其他文件传输工具传输到目标机器。例如,使用 scp
传输:
scp etcd_v3.5.5.tar user@target-machine:/path/to/destination
scp minio_v2023.tar user@target-machine:/path/to/destination
scp milvus_v2.4.5.tar user@target-machine:/path/to/destination
4. 在目标机器上加载镜像
在目标机器上,使用 docker load
命令加载 .tar
文件中的镜像:
docker load -i /path/to/destination/etcd_v3.5.5.tar
docker load -i /path/to/destination/minio_v2023.tar
docker load -i /path/to/destination/milvus_v2.4.5.tar
加载成功后,你可以使用以下命令确认镜像是否加载成功:
docker images
你应该能够看到这些镜像列表。
5. 启动 Docker Compose 服务
一旦所有镜像都已加载到本地,你就可以使用 docker compose
启动服务:
docker compose up -d
这样就能成功启动容器,而无需重新从 Docker Hub 或其他仓库拉取镜像。如果镜像已经成功加载,它们应该会直接被使用。
总结步骤
- 在能联网的机器上拉取镜像。
- 使用
docker save
将镜像保存为.tar
文件。 - 将
.tar
文件传输到目标机器。 - 使用
docker load
加载镜像。 - 运行
docker compose up -d
启动容器。
这些步骤可以帮助你在没有网络的情况下,手动导入和使用 Docker 镜像。