Dockerfile中的MongoDB运行状况检查

时间:2020-02-20 21:19:45

标签: mongodb docker mongodb-query dockerfile health-check

我正在尝试为在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。

可能是什么原因造成的?

1 个答案:

答案 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