当前位置:
ceph分布式集群文件服务器docker部署记录
机器助手 | 2025-07-13
6人浏览
先临时记录下代码,后面详细整理
version: '3.4'
services:
# 部署 Monitor 模块
ceph-mon:
# 镜像已经下载到harbor私服
image: ceph/daemon:latest
network_mode: host
container_name: ceph-mon
restart: always
volumes:
- /etc/localtime:/etc/localtime
- /etc/ceph:/etc/ceph
- /var/lib/ceph/:/var/lib/ceph
environment:
# 当前服务器的IP, 在不同的服务器部署不要忘记改IP
MON_IP: 192.168.1.101
CEPH_PUBLIC_NETWORK: 192.168.1.0/24
command: mon
# 部署 Manager daemon 模块
ceph-mgr:
image: ceph/daemon:latest
network_mode: host
container_name: ceph-mgr
restart: always
depends_on:
- ceph-mon
volumes:
- /etc/localtime:/etc/localtime
- /etc/ceph:/etc/ceph
- /var/lib/ceph/:/var/lib/ceph
command: mgr
# 部署 OSD 模块
ceph-osd:
image: ceph/daemon:latest
network_mode: host
container_name: ceph-osd
restart: always
privileged: true
# 跟主机系统共享进程命名空间。打开该选项的容器可以相互通过进程 ID 来访问和操作。
pid: host
depends_on:
- ceph-mgr
volumes:
- /etc/localtime:/etc/localtime
- /etc/ceph:/etc/ceph
- /var/lib/ceph/:/var/lib/ceph
- /dev/:/dev/
# 单独指定osd数据空间, 如果不单独指定,默认在/var/lib/ceph目录下
#- /mnt/sda1/osd:/var/lib/ceph/osd
command: osd_directory
# 部署 MDS 模块 (用来支持 CephFS文件系统存储, 根据实际情况选用,非必须)
ceph-mds:
image: ceph/daemon:latest
network_mode: host
container_name: ceph-mds
restart: always
depends_on:
- ceph-osd
volumes:
- /etc/localtime:/etc/localtime
- /etc/ceph:/etc/ceph
- /var/lib/ceph/:/var/lib/ceph
environment:
# 0表示不自动创建文件系统(推荐),1表示自动创建
CEPHFS_CREATE: 1
command: mds
# # 部署 Rados Gateway 模块 (用来支持 对象存储, 根据实际情况选用,非必须)
ceph-rgw:
image: ceph/daemon:latest
network_mode: host
container_name: ceph-rgw
restart: always
depends_on:
- ceph-osd
volumes:
- /etc/localtime:/etc/localtime
- /etc/ceph:/etc/ceph
- /var/lib/ceph/:/var/lib/ceph
command: rgw
# # 部署 RBD mirror 模块 (用来支持 块存储, 根据实际情况选用,非必须)
# ceph-rbd:
# image: sinoeyes.io/cephlib/ceph/daemon:latest-luminous
# network_mode: host
# container_name: ceph-rbd
# restart: always
# volumes:
# - /etc/localtime:/etc/localtime
# - /etc/ceph:/etc/ceph
# - /var/lib/ceph/:/var/lib/ceph
# depends_on:
# - ceph-osd
# command: rbd_mirror
#eric
执行osd之前执行 docker exec -it ceph-mon ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring
执行rgw前执行 docker exec -it ceph-mon ceph auth get client.bootstrap-rgw -o /var/lib/ceph/bootstrap-rgw/ceph.keyring
docker exec mgr ceph dashboard set-login-credentials admin admin
设置用户名为admin, 密码为admin。 注意我使用这条命令的时候报错了dashboard set-login-credentials : Set the login credentials. Password read from -i
我手动在mgr容器中创建了/tmp/ceph-password.txt 在里面写入了密码admin 然后执行如下命令就成功了: docker exec -it mgr bash
vi /tmp/ceph-password.txt admin
exit docker exec mgr ceph dashboard ac-user-create admin -i /tmp/ceph-password.txt administrator
修改mon重启失败问题
docker cp mon:/opt/ceph-container/bin/start_mon.sh .
# 注释此行,直接将v2v1赋值为2,代表是走V2协议, 以指定IP方式加入集群
#v2v1=$(ceph-conf -c /etc/ceph/${CLUSTER}.conf 'mon host' | tr ',' '\n' | grep -c ${MON_IP})
v2v1=2
docker cp start_mon.sh mon:/opt/ceph-container/bin/start_mon.sh
