0

我正在尝试为在Dockerfile中配置的 MongoDB 容器创建 Healthcheck :

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。

这可能是什么原因造成的?

4

1 回答 1

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

于 2020-02-20T22:12:53.500 回答