1.连接上我的阿里云,默认进入到root目录 docker info
这里更改镜像加速:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["阿里镜像加速器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.查看已有的镜像:
3.安装mongodb数据库
以下步奏来之
去 hub.docker.com/ docker官方镜像网站搜索mongo
3.1 docker pull mongo:4.4.10 拉取镜像
docker images 查看已经有的镜像文件
3.2 运行容器: www.runoob.com/docker/dock…
docker run -itd --name jevy_mongo -p 27017:27017 mongo --auth
总结 : 直接运行的时候 会直接拉取最新的版本,现在我有了mongo 两个版本的镜像文件,
正在运行的 docker 容器 使用的事latest版本。
没办法,我得先将容器jevy_mongo 停止,并删除
docker stop 容器名称
docker rm 容器名称
3.3 重新运行容器 docker run -itd --name jevy_mongo4 -p 27017:27017 mongo:4.4.10 --auth
3.4 删除前面拉取的mongodb latest版本
docker rmi 镜像ID
3.5 进入 运行的容器 jevy_mongo4
docker exec -it jevy_mongo4 mongo admin
接着使用以下命令添加用户和设置密码,并且尝试连接。
db.createUser({ user:'admin',pwd:'112244',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
以上作为熟悉操作:下面才是实际应用
4. 此时我在本地是无法访问云服务器的mongo服务的
有了镜像文件,我们就可以创建容器,并对数据量进行持久化,容器数据卷
我将上面的jevy_mongo4 的容器删除
docker run --name jevy_mongo -p 27017:27017 -v /home/mongo/jevy_mongo:/data/db -d mongo:4.4.10
数据卷的名称(在阿里云宿主机)上的名称必须与容器的名称保持一致,docker会自动创建
5.进入创建的新容器:
docker exec -it jevy_mongo /bin/bash
-it 代表 打开一个交互命令窗口
接下来就是mongodb的熟悉操作了
接下来就是用本地连接阿里云的mongodb数据库了。
6. 在阿里云 服务器中开放27017 端口
然后就连接上了 阿里云服务器的 mongodb数据库了
- 这样的数据库是很不安全的,直接暴露了, 创建登录 用户名:
设置好了,重启一下容器:
docker restart jevy_mongo
8. 设置 了用户名 还是直接可以链接上
暂时不知道如何解决直接暴露IP就能连接到mongodb的问题