Docker学习之MongoDB - daduXu/notes GitHub Wiki

Docker学习笔记

MongoDB搭建
介绍在Centos8中, Docker安装MongoDB,及遇到的问题及解决方法。

一、Docker安装

使用 Docker 仓库进行安装 Docker Engine-Community

1、安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

执行命令:sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

2、使用以下命令来设置稳定的仓库。

执行命令:sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

3、安装,

执行命令:sudo yum install docker-ce docker-ce-cli containerd.io

注:提示要是版本强制出问题,就选择不使用最佳选择的参数。
如果提示您接受 GPG 密钥,请选是。

4、启动 Docker。

执行命令:sudo systemctl start docker

5、通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

执行命令:sudo docker run hello-world

二、Docker MongoDB安装

1、通过镜像安装

执行命令:docker pull mongo:latest

使用以下命令来查看是否已安装了 mongo:
docker images

2、运行容器,并映射服务器端口

运行方式有两种

  1. 开启用户验证
  2. 不带用户验证

就是运行时,是否带有—auth参数

执行命令:docker run -itd --name mongo -p 27017:27017 mongo

3、查看容器状态

执行命令:docker ps -a

注: 安装与运行已经完成了,但外部使用还需要宿主机对外的端口暴露,要不没法远程访问。当然,不需要远程访问的另算。

三、Docker 远程访问配置

首先,需要开启远程访问,然后,添加防火墙的访问规则,确保端口能被使用。

1、开启docker远程访问

执行命令: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的信息了。

2、添加端口规则

由于centos8中使用的是自带的firewalld服务,方便使用,改为了传统的iptables

停止firewalld服务

执行命令:systemctl stop firewalld

禁用firewalld服务

执行命令:systemctl mask firewalld

检查是否安装了 iptables

执行命令:service iptables status

安装 iptables

执行命令:yum install -y iptables

安装 iptables-services

执行命令: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连接工具,测试连接

成功

⚠️ **GitHub.com Fallback** ⚠️