This Dockerfile may be used to bootstrap a Ceph cluster or add a mon to an existing cluster.
Environment variables:
MON_NAMEis the name of the monitor (defaults tohostname -s)MON_IPis the IP address of the monitor (public) (required, if not using autodetection)MON_IP_AUTO_DETECT: Whether and how to attempt IP autodetection.- 0 = Do not detect (default)
- 1 = Detect IPv6, fallback to IPv4 (if no globally-routable IPv6 address detected)
- 4 = Detect IPv4 only
- 6 = Detect IPv6 only
For example:
docker run -e MON_IP=192.168.101.50 -e MON_NAME=mymon ceph/mon
If you have an existing Ceph cluster and are only looking to add a monitor, you will need at least four files in /etc/ceph:
ceph.conf- The main ceph configuration file, which may be obtained from an existing ceph monitorceph.client.admin.keyring- The administrator key of the cluster, which may be obtained from an existing ceph monitor byceph auth get client.admin -o /tmp/ceph.client.admin.keyringceph.mon.keyring- The monitor key, which may be obtained from an existinv ceph monitor byceph auth get mon. -o /tmp/ceph.mon.keyringmonmap- The present monitor map of the cluster, which may be obtained from an existing ceph monitor byceph mon getmap -o /tmp/monmap
Otherwise, if you are bootstrapping a new cluster, these will be generated for you.
Commonly, you will want to bind-mount your host's /etc/ceph into the container. For example:
docker run -e MON_IP=192.168.101.50 -e MON_NAME=mymon -v /etc/ceph:/etc/ceph ceph/mon