【发布时间】:2019-11-13 19:04:31
【问题描述】:
我有一个安装了 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
【问题讨论】: