Docker学习之MongoDB - daduXu/notes GitHub Wiki
MongoDB搭建
介绍在Centos8中, Docker安装MongoDB,及遇到的问题及解决方法。
1、安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
执行命令:sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
执行命令:sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
执行命令:sudo yum install docker-ce docker-ce-cli containerd.io
注:提示要是版本强制出问题,就选择不使用最佳选择的参数。
如果提示您接受 GPG 密钥,请选是。
执行命令:sudo systemctl start docker
执行命令:sudo docker run hello-world
执行命令:docker pull mongo:latest
使用以下命令来查看是否已安装了 mongo:
docker images
运行方式有两种
开启用户验证
不带用户验证
就是运行时,是否带有—auth参数
执行命令:docker run -itd --name mongo -p 27017:27017 mongo
执行命令:docker ps -a
注: 安装与运行已经完成了,但外部使用还需要宿主机对外的端口暴露,要不没法远程访问。当然,不需要远程访问的另算。
首先,需要开启远程访问,然后,添加防火墙的访问规则,确保端口能被使用。
执行命令:vi /lib/systemd/system/docker.service
找到文件中的ExecStart=
修改:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --iptables=true
注:端口号是访问docker的,不是mongodb的端口号。
测试是否可以访问,http://ip:2375/info 就能看到docker的信息了。
由于centos8中使用的是自带的firewalld
服务,方便使用,改为了传统的iptables
执行命令:systemctl stop firewalld
执行命令:systemctl mask firewalld
执行命令:service iptables status
执行命令:yum install -y iptables
执行命令:yum install iptables-services
这里好像需要重启电脑(VM)
执行命令:iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27019 -j ACCEPT
执行命令:service iptables save
执行命令:cat /etc/sysconfig/iptables | grep 27019
执行命令:service iptables restart
在电脑上使用mongodb连接工具,测试连接