当前位置:

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

 

文章评论