本次部署采用Docker方式进行部署,服务器为鲲鹏服务器,CPU架构为ARM64,操作系统版本信息为
# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)
找镜像
首先在https://hub.docker.com/网站上找到相关的额镜像,我这边找到的镜像地址为:https://hub.docker.com/layers/mongodb/mongodb-community-server/4.4-ubuntu2004/images/sha256-e2fd10d7979ee1c5565e5b37ad1ae62056dc5c0df8adb7fbff3b8a3409b55dad?context=explore
在服务器上拉取指定镜像的命令如下:
docker pull mongodb/mongodb-community-server:4.4-ubuntu2004@sha256:12c1144536f1220f6be3a6c3a7e0bacaa5ae12742fab805caf41fead8bac6377
@后的信息为上图中MANIFEST DIGEST。
查看已经下载的镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongodb/mongodb-community-server <none> 9882f74b6478 6 months ago 749MB
由于该镜像没有TAG,打一个TAG
# docker tag 9882f74b6478 mongodb:4.4
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongodb 4.4 9882f74b6478 6 months ago 749MB
mongodb/mongodb-community-server <none> 9882f74b6478 6 months ago 749MB
打包该镜像
docker save -o mongodb-arm64.tar mongodb:4.4
打包完成镜像后,使用sz mongodb-arm64.tar将镜像文件下载到本地,然后使用rz命令将镜像文件mongodb-arm64.tar上传到服务器指定目录,这里sz、rz命令在SecureCRT工具上使用非常方便。
部署
使用如下命令加载镜像
docker load -i mongodb-arm64.tar
检查镜像是否加载成功
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongodb 4.4 9882f74b6478 6 months ago 749MB
可以看到镜像已经成功加载,执行如下命令开始创建MongoDB实例
docker run -d --name mongo --restart=always -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin@mongodb \
mongodb:4.4
如果需要将数据目录映射到宿主机上,执行如下脚本
mkdir -p /data/docker/mongo/data
chmod 777 /data/docker/mongo/data
docker run -d --name mongo --restart=always -p 27017:27017 \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=admin@mongodb \
-v /data/docker/mongo/data/:/data/db/ \
mongodb:4.4
查看实例是否启动成功
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6bb60d1d91f5 mongodb:4.4 "python3 /usr/local/…" 38 minutes ago Up 38 minutes 0.0.0.0:27017->27017/tcp mongo
可以看到mongodb实例已经启动成功
# netstat -lnp | grep 27017
tcp6 0 0 :::27017 :::* LISTEN 3914012/docker-prox
查看端口也已经成功启动,至此mongodb已经成功启动
客户端检查
开放客户端端口访问:
firewall-cmd --zone=public --add-port=27017/tcp --permanent
使用dbeaver连接
经过测试创建了一个user集合并插入了几条数据
其他镜像
这个官方镜像,经过测试也可以
docker pull mongo:4.4.29@sha256:f937886fdc0200b667b8c249b6c02527cb9cea70aa53c4d7d5f0df649cdfbd02