mongodb - mongodb macvlan docker容器中的连接被拒绝
问题描述
我有一个安装了 docker 的树莓派 Pi4 和 macvlan 模式下的 mongo Docker。
从我的台式计算机上,我 ping docker IP 和响应很好,但是当我尝试使用这台计算机中的其他 docker 访问 mongodb 服务器时,它失败了。
无法从存在 macvlan 的同一网络中的其他 docker 进行连接。
这是我的 docker network inspect 输出:
pi@raspberrypi:~ $ docker network inspect pablo1
[
"ConfigOnly": false,
"Containers": {
"f17210b2cf26b2752e03b2a4c889041ab9be3a8746675e29e2104362409c8039": {
"Name": "mongo",
"EndpointID": "6aedeff51378d8a8f5f6ebc7533306edcd21a3324f5dff319e5bbed5736df5d4",
"MacAddress": "02:42:c0:a8:00:c4",
"IPv4Address": "192.168.0.196/24",
"IPv6Address": ""
}
},
"Options": {
"parent": "eth0"
},
"Labels": {}
}
]
这是我制作 Docker 容器的 Dockerfile:
FROM armv7/armhf-ubuntu:16.04
RUN apt-get update && \
apt-get install -y mongodb
RUN apt-get dist-upgrade -y && \
apt-get autoremove -y && \
apt-get autoclean -y && \
apt-get clean -y && \
rm -rf /var/lib/apt/lists/*
# Environment variables
RUN echo " " >> /etc/bash.bashrc && \
echo "#_____________________" >> /etc/bash.bashrc && \
echo "force_color_prompt=yes" >> /etc/bash.bashrc && \
echo "alias cls='clear'" >> /etc/bash.bashrc && \
echo "export TERM=linux" >> /etc/bash.bashrc
# Define mountable directories.
VOLUME ["/data/db"]
# Define working directory.
WORKDIR /data
COPY mongodb.conf /etc/
# Define default command.
# Expose ports.
# - 27017: process
# - 28017: http
RUN cat /etc/mongodb.conf
RUN ls -las /etc
CMD ["mongod"]
EXPOSE 27017
EXPOSE 28017
这是 Docker mongodb mongodb.conf 的一部分
# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 0.0.0.0
port = 27017
解决方案
抱歉,只有当数据库目录挂载在NFS外部分区时才会出现这个问题
推荐阅读
- azure - 使用 ADF Web 活动启动/停止 Azure Function App
- c# - 如何在C#中知道excel表中输入文本的数据类型
- python - 首先按特定行排序
- ios - 在 Xcode 中打开我的 React Native 项目,我的代码在哪里?
- android - 在哪里销毁数据库实例:Activity onDestroy() 或 ViewModel onCleared()?
- python - 错误“字符串格式化期间并非所有参数都转换”pymysql
- c# - 实体框架 - 同一类的多个组合
- c++ - 使用向量在 C++ 中声明 3D 数组结构
- wordpress - WordPress 下载管理器插件
- c++ - 遍历 C++ 中的元组常量列表