通過docker可以快速部署小規模ceph集群的流程,可用於開發測試。
以下的安裝流程是通過linux shell來執行的;假設你只有一台機器,裝了linux(如ubuntu)系統和docker環境,那麼可以參考以下步驟安裝ceph:
# 1. 建立ceph專用網路
docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network
docker network inspect ceph-network
# 2. 刪除舊的ceph相關容器
docker rm -f $(docker ps -a | grep ceph | awk '')
# 3. 清理舊的ceph相關目錄檔案,假如有的話
rm -rf /www/ceph /var/lib/ceph/ /www/osd/
# 4. 建立相關目錄及修改許可權,用於掛載volume
mkdir -p /www/ceph /var/lib/ceph/osd /www/osd/
chown -r 64045:64045 /var/lib/ceph/osd/
chown -r 64045:64045 /www/osd/
# 5. 建立monitor節點
docker run -itd --name monnode --network ceph-network --ip 172.20.0.10 -e mon_name=monnode -e mon_ip=172.20.0.10 -v /www/ceph:/etc/ceph ceph/mon
# 6. 在monitor節點上標識3個osd節點
docker exec monnode ceph osd create
docker exec monnode ceph osd create
docker exec monnode ceph osd create
# 7. 建立osd節點
docker run -itd --name osdnode0 --network ceph-network -e cluster=ceph -e weight=1.0 -e mon_name=monnode -e mon_ip=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/0:/var/lib/ceph/osd/ceph-0 ceph/osd
docker run -itd --name osdnode1 --network ceph-network -e cluster=ceph -e weight=1.0 -e mon_name=monnode -e mon_ip=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/1:/var/lib/ceph/osd/ceph-1 ceph/osd
docker run -itd --name osdnode2 --network ceph-network -e cluster=ceph -e weight=1.0 -e mon_name=monnode -e mon_ip=172.20.0.10 -v /www/ceph:/etc/ceph -v /www/osd/2:/var/lib/ceph/osd/ceph-2 ceph/osd
# 8. 增加monitor節點,元件成集群
docker run -itd --name monnode_1 --network ceph-network --ip 172.20.0.11 -e mon_name=monnode_1 -e mon_ip=172.20.0.11 -v /www/ceph:/etc/ceph ceph/mon
docker run -itd --name monnode_2 --network ceph-network --ip 172.20.0.12 -e mon_name=monnode_2 -e mon_ip=172.20.0.12 -v /www/ceph:/etc/ceph ceph/mon
# 9. 建立gateway節點
docker run -itd --name gwnode --network ceph-network --ip 172.20.0.9 -p 9080:80 -e rgw_name=gwnode -v /www/ceph:/etc/ceph ceph/radosgw
# 10. 檢視ceph集群狀態
sleep 10 && docker exec monnode ceph -s
檢視network的操作命令:
sudo docker network --help
usage: docker network command
manage networks
options:
commands:
connect connect a container to a network
create create a network
disconnect disconnect a container from a network
inspect display detailed information on one or more networks
ls list networks
prune remove all unused networks
rm remove one or more networks
刪除network:
sudo docker network rm
使用docker部署簡單web應用
由於我是很久之前裝的docker了,已經不記得怎麼安裝了,安裝教程可以參考網上的教程。這裡提供乙份參考 這裡的編寫需要注意路徑問題 按照下面的形式編寫dockerfile from golang latest workdir go src apiongo copy go src apiongo ru...
Docker 簡單部署ElasticSearch
拉取容器 docker pull docker.elastic.co elasticsearch elasticsearch 6.3.2 elasticsearch的預設埠是9200,我們把宿主環境9200埠對映到docker容器中的9200埠,就可以訪問到docker容器中的elasticsear...
Docker 使用Docker部署Node服務
docker 是乙個開源的容器引擎。開發者可以將自己的應用以及依賴打包為乙個可移植的容器,然後發布到 linux 機器上。它類似於乙個輕量級的虛擬機器,極大地方便了使用者在伺服器端部署和管理應用環境。apt install docker.io安裝成功後檢視docker版本 建立package.jso...