docker安装mongodb教程

  1. 首先安装好docker,这个不用说
  2. 因为docker官方无法访问,这里我分享一个docker镜像网站(https://docker.aityp.com/)
  3. 首先拉去mongodb的镜像
[root@hadoop ~]# di
REPOSITORY                                                                         TAG                 IMAGE ID       CREATED         SIZE
mongo                                                                              7.0.19              b61aac0fa893   6 months ago    814MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mongo                           7.0.19              b61aac0fa893   6 months ago    814MB
rabbitmq                                                                           4.0                 d4093a263704   10 months ago   231MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/rabbitmq                        4.0                 d4093a263704   10 months ago   231MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/dyrnq/rocketmq                  4.9.4-linuxarm64    a230768160bf   12 months ago   480MB
rocketmq                                                                           latest              a230768160bf   12 months ago   480MB
redis                                                                              7.4.1               36900367459b   13 months ago   117MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis                           7.4.1               36900367459b   13 months ago   117MB
mysql                                                                              9.0.1               d1a6bffb6c99   15 months ago   586MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql                           9.0.1               d1a6bffb6c99   15 months ago   586MB
canal                                                                              latest              eb67fb66f50b   2 years ago     1.19GB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/canal/canal-server              v1.1.7-linuxarm64   eb67fb66f50b   2 years ago     1.19GB
nacos/nacos-server                                                                 v2.1.0-slim         49addbd025a1   3 years ago     322MB
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/zevenfang/rocketmq-console-ng   latest              7df83bb6e638   8 years ago     702MB

拉取镜像命令为 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mongo:7.0.19

  1. 这里介绍一下di命令,这是我自定义的命令,为了快捷高效地操作服务器,也分享给大家,具体操作如下,就是给命令起别名
  • [root@hadoop ~]# vim /etc/bashrc

  • #my design command
    #docker ps
    alias dps='docker ps'                                                                                
                                                                                                            
    #docker ps -a                                                                                           
    alias dpsa="docker ps -a"                                                                               
                                                                                                            
    #docker images                                                                                          
    alias di="docker images"                                                                                
                                                                                                            
    #restart docker                                                                                         
    alias redocker="systemctl restart docker"                                                               
                                                                                                            
    #start redis                                                                                            
    alias redis="docker start redis"                                                                        
                                                                                                            
    #start mysql                                                                                            
    alias mysql="docker start mysql"                                                                        
                                                                                                            
    #start ollama                                                                                           
    alias ollama="docker start ollama"                                                                      
                                                                                                            
    #start mongodb                                                                                          
    alias mongodb="docker start mongodb"                                                                    
                                                                                                            
    #clear 
    alias c="clear"
    
  1. 建容器
docker run -d \
  --name mongodb \
  -p 27017:27017 \
  -v /data/mongo/data:/data/db \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=123456 \
  mongo:7.0.19
  1. 启动容器 [root@hadoop ~]# docker start mongodb

  2. 查看dps,注意这里是docker ps,因为我用了别名

[root@hadoop ~]# dps                                                                                    
CONTAINER ID   IMAGE          COMMAND                  CREATED       STATUS                  PORTS      
                                     NAMES                                                              
67b4a300d434   mongo:7.0.19   "docker-entrypoint.s…"   11 days ago   Up Less than a second   0.0.0.0:270
17->27017/tcp, :::27017->27017/tcp   mongodb
  1. 这里需要注意的是0.0.0.0:27017->27017/tcp, :::27017->27017/tcp ,0.0.0.0才允许外网IP访问,如果这里显示的是127.0.0.1,那么这个mongodb只允许局域网访问,外网IP是无法访问的
  2. 进入容器,docker exec -it mongodb bash修改config ,文件在/etc
[root@hadoop ~]# docker exec -it mongodb bash
root@67b4a300d434:/etc# cat mongod.conf.orig 
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
authorization: "disabled"
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:
  1. 当然,如果还连接不上mongodb服务,排查如下
  • 检查本地环境能否ping通mongodb所在的服务器IP

  • 检查mongodb服务器防火墙是否开启,是否允许mongodb的端口27017开放并允许你的IP访问

  • 其次检查mongodb的配置文件,这里最好设置为0.0.0.0允许所有IP访问,不然只能局域网访问,踩过坑

    net:
      port: 27017
      bindIp: 0.0.0.0
    
  • 其次就是检查认证方式和密码,mongodb的默认认证方式是SCRAM-SHA-1,正确填写用户名的密码,认证数据库Authentication database默认为admin

  • 如果是腾讯云服务器+宝塔面板搭建的话,需要到腾讯云官方控制面板的防火墙开启端口,也要在宝塔面板开启端口,同时也要把配置文件设置为允许所有IP访问。(小经验,我使用这种方式搭建过)

更多推荐