我正在尝试为在Dockerfile中配置的MongoDB容器创建运行状况检查:
FROM ubuntu
RUN apt-get update && apt-get install -y gnupg2
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' > tee /etc/apt/sources.list.d/mongodb.list
RUN apt-get update
RUN apt-get install -y mongodb
RUN mkdir -p /data/db
EXPOSE 27017
**HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1**
CMD ["usr/bin/mongod", "--smallfiles"]
但是当我构建映像并运行容器时,在运行docker ps
后,它会在Up 20 seconds (unhealthy)
列中显示status
。
使用bash进入容器时,当我尝试运行service mongodb start
时会失败。
在日志文件(/var/log/mongodb/mongodb.log
)中,它显示为Failed to set up listener: SocketException: Address already in use
但是没有其他容器正在运行MongoDB。
可能是什么原因造成的?
答案 0 :(得分:0)
最后一行可能是一个错误
更改此行CMD ["usr/bin/mongod", "--smallfiles"]
到
CMD ["/usr/bin/mongod", "--smallfiles"]
更新1 :
更改此行
**HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1**
到
HEALTHCHECK --interval=5s --timeout=3s CMD /etc/init.d/mongodb status || exit 1