本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

!logo
Scylla Manager 是 ScyllaDB 的数据库操作自动化工具。它可以调度修复和备份等任务,能够管理多个Scylla集群,并以可控且可预测的方式运行集群级任务。
Scylla Manager 面向 Scylla Enterprise 客户和 Scylla Open Source 用户提供。对于 Scylla Open Source,Scylla Manager 限制为最多 5 个节点。详情请参见 Scylla Manager 专有软件许可协议。
Docker Compose 是一款用于定义和运行多容器应用的工具,无需手动编排参与的容器。
本示例使用单节点 Scylla 集群和 MinIO,不应在生产环境中使用。有关正确的生产环境设置,请参见 Scylla Manager 操作指南。示例启动并运行后,您可以尝试使用 Scylla Manager 提供的各种运行修复和备份的命令。
docker-compose.yaml。version: "3.7" services: scylla-manager: image: scylladb/scylla-manager:${SCYLLA_MANAGER_VERSION} networks: public: depends_on: - scylla-manager-db scylla-manager-db: image: scylladb/scylla:latest volumes: - scylla_manager_db_data:/var/lib/scylla networks: public: command: --smp 1 --memory 1G scylla: build: context: . image: scylladb/scylla-with-agent volumes: - scylla_data:/var/lib/scylla networks: public: ipv4_address: 192.168.100.100 command: --smp 1 minio: image: minio/minio:latest volumes: - minio_data:/data networks: public: ports: - "9001:9000" environment: MINIO_ACCESS_KEY: minio MINIO_SECRET_KEY: minio123 command: server /data volumes: minio_data: scylla_data: scylla_manager_db_data: networks: public: driver: bridge ipam: driver: default config: - subnet: 192.168.100.0/24
此配置指示 Docker 创建两个容器:scylla-manager 容器运行 Scylla Manager 服务器,scylla-manager-db 容器运行 Scylla 数据库(Scylla Manager 用于保存其数据)。此外,还提供了一个 MinIO 实例用于备份,以及一个供应用使用的 Scylla 实例。请注意,这不是生产环境设置,生产环境需要更复杂的存储和安全配置。
Dockerfile 复制到与步骤 1 中保存的 docker-compose.yaml 相同的目录。此 Dockerfile 用于创建包含 Scylla Manager Agent 的 ScyllaDB 镜像,因为 Agent 需要访问 ScyllaDB 的数据文件以创建备份。FROM scylladb/scylla:latest RUN echo -e "#!/usr/bin/env bash\n\ set -eu -o pipefail\n\ if [[ ! -f \"/var/lib/scylla-manager/scylla_manager.crt\" || ! -f \"/var/lib/scylla-manager/scylla_manager.key\" ]]; then\n\ /sbin/scyllamgr_ssl_cert_gen\n\ fi\n\ exec /usr/bin/scylla-manager-agent $@" > /scylla-manager-agent-docker-entrypoint.sh RUN echo -e "[scylla-manager]\n\ name=Scylla Manager for Centos \$releasever - \$basearch\n\ baseurl=[***]\7/\$basearch/\n\ enabled=1\n\ gpgcheck=0\n" > /etc/yum.repos.d/scylla-manager.repo RUN echo -e "[program:scylla-manager-agent]\n\ command=/scylla-manager-agent-docker-entrypoint.sh\n\ autorestart=true\n\ stdout_logfile=/dev/stdout\n\ stdout_logfile_maxbytes=0\n\ stderr_logfile=/dev/stderr\n\ stderr_logfile_maxbytes=0" > /etc/supervisord.conf.d/scylla-manager-agent.conf RUN yum -y install epel-release && \ yum -y clean expire-cache && \ yum -y update && \ yum install -y scylla-manager-agent && \ yum clean all && \ rm /etc/yum.repos.d/scylla-manager.repo RUN echo -e "auth_token: token\n\ s3:\n\ access_key_id: minio\n\ secret_access_key: minio123\n\ endpoint: [***]" > /etc/scylla-manager-agent/scylla-manager-agent.yaml RUN rm -f /var/lib/scylla-manager/scylla_manager.crt && \ rm -f /var/lib/scylla-manager/scylla_manager.key && \ chmod --reference=/usr/bin/scylla-manager-agent /scylla-manager-agent-docker-entrypoint.sh
docker-compose up 命令创建并启动容器:SCYLLA_MANAGER_VERSION=2.0.1 docker-compose up -d
也可以不使用 Docker Compose,直接通过 Docker 命令手动设置。
为避免启动问题,建议先启动外围服务,如 MinIO。
按以下命令启动 MinIO 容器,并将其链接到后续创建的 Scylla 实例:
docker run -d -p 9000:9000 --name minio1 \ -e "MINIO_ACCESS_KEY=minio" \ -e "MINIO_SECRET_KEY=minio123" \ -v /mnt/data:/data minio/minio server /data
复制 Docker Compose 示例中使用的 Dockerfile 到当前目录,用于构建包含 Scylla Manager Agent 的 ScyllaDB 镜像(确保 ScyllaDB 与 Scylla Manager 之间的正常通信)。
执行构建命令:
docker build -t scylladb/scylla-with-agent .
使用刚构建的镜像创建新的 ScyllaDB 实例(用于存储应用数据),并链接到 MinIO 实例:
docker run -d --name scylla --link minio1 --mount type=volume,source=scylla_db_data,target=/var/lib/scylla scylladb/scylla-with-agent --smp 1 --memory=1G
启动 ScyllaDB 实例作为 Scylla Manager 的内部数据存储:
docker run -d --name scylla-manager-db --mount type=volume,source=scylla_manager_db_data,target=/var/lib/scylla scylladb/scylla --smp 1 --memory=1G
最后启动 Scylla Manager,链接到上述两个 ScyllaDB 实例:
docker run -d --name scylla-manager --link scylla-manager-db --link scylla scylladb/scylla-manager:2.0.1
通过 docker exec 在 scylla-manager 容器中调用 bash,将创建的单节点集群添加到 Scylla Manager:
docker exec -it scylla-manager sctool cluster add -c cluster --host=scylla --auth-token=token 1a0feeba-5b38-4cc4-949e-6bd704667552 __ / \ 集群已添加!您可以通过导出集群名称或 ID 作为环境变量将其设为默认集群: @ @ $ export SCYLLA_MANAGER_CLUSTER=1a0feeba-5b38-4cc4-949e-6bd704667552 | | $ export SCYLLA_MANAGER_CLUSTER=<名称> || |/ || || 现在可运行: |\_/| $ sctool status -c cluster \___/ $ sctool task list -c cluster
检查集群状态:
docker exec -it scylla-manager sctool status -c cluster Datacenter: datacenter1 +----------+-----+----------+-----------------+ | CQL | SSL | REST | Host | +----------+-----+----------+-----------------+ | UP (0ms) | OFF | UP (0ms) | 192.168.100.100 | +----------+-----+----------+-----------------+
有关更多详情,请参见完整的 sctool 参考文档。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429