代码之家  ›  专栏  ›  技术社区  ›  Jdruwe

Docker撰写从链接迁移到网络MongoDB数据库问题

  •  1
  • Jdruwe  · 技术社区  · 9 年前

    我正在尝试通过Dockerfile从使用链接迁移到网络,但遇到了一些问题。我将首先绘制我的原始设置:

    原始-链接

    Dockerfile文件:

    FROM java:8
    VOLUME /tmp
    ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8080
    ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongodb/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    docker-compose.yml:

    mongodb:
     image: mongo
    employee:
     image: jdruwe/docker_micro_maven
     links:
      - mongodb
     ports:
      - "8080"
    

    新建-网络

    Dockerfile文件:

    FROM java:8
    VOLUME /tmp
    ADD docker_micro_maven-0.0.1-SNAPSHOT.jar app.jar
    RUN bash -c 'touch /app.jar'
    EXPOSE 8080
    ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://${MONGO_URI_DOCKER}/micros", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    

    docker-compose.yml:

    mongodb:
     container_name: "db"
     image: mongo
    employee:
     image: jdruwe/docker_micro_maven
     environment:
      - MONGO_URI_DOCKER=db:27017
     ports:
      - "8080"
    

    当我在springboot应用程序中调用rest端点时(原始情况),我总是得到一个响应(一些json数据)。当我现在调用它时,我得到以下错误响应:

    {
      "timestamp": 1453405937191,
      "status": 500,
      "error": "Internal Server Error",
      "exception": "org.springframework.dao.DataAccessResourceFailureException",
      "message": "Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=db:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: db: unknown error}}]",
      "path": "/employee"
    }
    

    我用Devox的视频作为参考: https://youtu.be/aSATsLG59Zs?t=53m33s

    我似乎一直在做错事,但我不确定是什么,欢迎任何帮助。提前谢谢!

    1 回复  |  直到 9 年前
        1
  •  1
  •   thaJeztah    9 年前

    在docker compose 1.5.x中,新的网络仍然是一个实验性的特性,需要使用 --x-networking 选项。

    新的网络功能将从docker-compose 1.6中的实验中移除,如果docker-cospose.yml使用新的(2.0)文件格式,则会自动使用这些功能。

    阅读docker compose 1.6-rc1的发行说明了解更多信息; https://github.com/docker/compose/releases/tag/1.6.0-rc1