准备
安装Docker CE
选择清华的镜像网站会快一些,按步骤安装就好了
如果安装过mongodb-charts旧版本需要先卸载
docker stack rm mongodb-charts
安装mongodb-charts
创建新文件夹
mkdir mongodb-charts
cd mongodb-charts
下载最新版的Charts Docker Compose
放入新创建的文件夹中
启动 Docker Swarm
docker swarm init
拉取Charts image
docker pull quay.io/mongodb/charts:v0.10.0
使用mongo数据库账号测试连接
docker run --rm quay.io/mongodb/charts:v0.10.0 charts-cli test-connection mongodb://<username>:<password>@dds-2ze66**********26-pub.mongodb.rds.aliyuncs.com:3717,dds-2ze6653********642845-pub.mongodb.rds.aliyuncs.com:3717/admin[?replicaSet=mgset-2813849]
注意:
1. 如果是replica主从复制的库,要加上replicaSet参数
2. 连接的mongo用户需要有readWriteAnyDatabase权限
为Charts数据源库创建一个Docker secret
echo "mongodb://<username>:<password>@dds-2ze66**********26-pub.mongodb.rds.aliyuncs.com:3717,dds-2ze6653********642845-pub.mongodb.rds.aliyuncs.com:3717/admin[?replicaSet=mgset-2813849]" | docker secret create charts-mongodb-uri -
为当前用户赋予docker权限
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
启动Mongodb-Charts
docker stack deploy -c charts-docker-compose-v0.10.0.yml mongodb-charts
检验是否启动
docker service ls
创建Charts用户
docker exec -it \
$(docker container ls --filter name=_charts -q) \
charts-cli add-user --first-name "<First>" --last-name "<Last>" \
--email "<user@example.com>" --password "<Password>" \
--role "<UserAdmin|User>"
接下来就可以通过80端口访问mongodb-charts了