本文记录了在Deepin20下用Docker离线部署mongo容器的过程。
一、操作环境
离线部署需要先下载相关文件,拷贝至离线主机上安装。
准备两台主机,一台在线,一台离线。
在线主机:Deepin20.9 及 Docker version 19.03.15
离线主机:Deepin20.9 及 Docker version 19.03.15
二、在线主机操作:
1、查看可用的 MongoDB 版本
MongoDB 镜像库地址: https://hub.docker.com/_/mongo/tags
查看支持linux系统的最新版
2、下载mongo镜像
$ docker pull mongo:5.0.17
3、查看下载的mongo镜像
$ docker images
4、导出镜像文件
$ docker save docker.io/mongo:5.0.17 > mongo5.0.17.tar
三、离线主机操作
1、在离线主机上加载镜像文件
$ docker load < mongo5.0.17.tar
6f37ca73c74f: Loading layer [==================================================>] 75.16MB/75.16MB
f9e855b8f0d2: Loading layer [==================================================>] 340.5kB/340.5kB
aaa220eb4f85: Loading layer [==================================================>] 20.05MB/20.05MB
a76abef17c04: Loading layer [==================================================>] 3.523MB/3.523MB
a6a965d142b6: Loading layer [==================================================>] 2.048kB/2.048kB
1323bb01db1e: Loading layer [==================================================>] 5.632kB/5.632kB
d1f6bb8e5e17: Loading layer [==================================================>] 3.584kB/3.584kB
58f8c01949bc: Loading layer [==================================================>] 566.5MB/566.5MB
4a2cac62e6e9: Loading layer [==================================================>] 17.41kB/17.41kB
Loaded image: mongo:5.0.17
2、查看导入镜像
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo 5.0.17 28e78cdbd593 11 days ago 661MB
3、创建本地数据目录
$ cd ~
$ mkdir -p docker/mongo/data
4 、启动mongo容器
$ docker run -itd --name mongo -p 27017:27017 -v ~/docker/mongo/data:/data/db mongo:5.0.17 --auth
95e29e28409a710f290609b5483dcc7ff6a693b7afeb1ab286272640fddf20ec
5、查看启动容器的状态
$ docker ps -a
6、添加mongodb用户
(1)进入命令行管理环境
$ sudo docker exec -it mongo mongo admin
>
(2)创建用户
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin' }, "readWriteAnyDatabase" ] });
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
},
"readWriteAnyDatabase"
]
}
>
7、测试用户连接
> db.auth('admin','123456')
1
>