GVKun编程网logo

从Spring App(docker-compose)获取Mongodb连接上的“异常打开套接字”(springboot mongodb 查询)

1

在这篇文章中,我们将带领您了解从SpringApp的全貌,包括docker-compose获取Mongodb连接上的“异常打开套接字”的相关情况。同时,我们还将为您介绍有关'docker-compos

在这篇文章中,我们将带领您了解从Spring App的全貌,包括docker-compose获取Mongodb连接上的“异常打开套接字”的相关情况。同时,我们还将为您介绍有关'docker-compose' 不是使用 docker-compose 和 docker-machine、25.docker compose 简介 和 docker-compose.yml 参数介绍、com.mongodb.MongoSocketOpenException:异常打开套接字、Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'的知识,以帮助您更好地理解这个主题。

本文目录一览:

从Spring App(docker-compose)获取Mongodb连接上的“异常打开套接字”(springboot mongodb 查询)

从Spring App(docker-compose)获取Mongodb连接上的“异常打开套接字”(springboot mongodb 查询)

ports中的

docker-compose指令将容器端口发布到主机计算机。容器在暴露的端口上相互通信。您可以测试一个容器是否可以使用netcat到达另一个容器。

docker exec -it messaging-api6 bash
> apt-get install netcat
> nc -z -v api-database4 27030
> nc -z -v api-database4 27017

'docker-compose' 不是使用 docker-compose 和 docker-machine

'docker-compose' 不是使用 docker-compose 和 docker-machine

如何解决''docker-compose'' 不是使用 docker-compose 和 docker-machine

我刚开始使用 Docker,我在 VirtualBox 上使用 docker-machine,就像我在旧 Mac 上一样。 docker-machine 命令工作正常,我现在正在尝试使用 docker-compose 来运行多容器应用程序。我记得在手册中读过这句话“docker-machine 现在可以运行 docker-compose 命令,有或没有 -”,但我再也找不到它了,所以我被困在如何使用docker-compose .. 你能指出我在正确的方向上使用 docker 机器的 compose 吗?一如既往,非常感谢您的帮助。 干杯

25.docker compose 简介 和 docker-compose.yml 参数介绍

25.docker compose 简介 和 docker-compose.yml 参数介绍

1. docker compose概念  文档  https://docs.docker.com/compose/compose-file/compose-versioning

  一个基于 docker 的工具

  可以通过一个 yml 文件定义多容器的 docker 应用

  通过一条命令就可以根据 yml 文件的定义 去创建或者管理这多个容器

2 docker compose 版本 2 与 版本 3 的区别

  最大的区别

    version 2 只能用于单机

    version 3 可用于多机

3. docker-compose.yml

  

    Services

      一个 service 代表一个 container , 这个 container 可以从 dockerhub 的 image 来创建, 或者从本地的 Dockerfile build出来的image 来创建

      service 的启动 类似与 docker run , 我们可以给其指定 network 和 volume . 所以可以给 service 指定 network 和 volume 的引用

      eg :

      docker run -d --name db -v db-data:/var/liv/postgresql/data --network back-tier  postgres:9.4

      services:

        db:                #service 的名称为 db

          image: postgres:9.4      #service image 为 postgres:9.4  这是从远程拉取的

          volumes:

            - "db-data:/var/liv/postgresql/data"  #将外部db-data挂载到container 的 /var/liv/postgresql/data 内

          networks:

            - back-tier        #网络为 back-tier

      eg2:

      docker run -d --link db --link redis --network back-tier  worker

      services:

        worker:

          build: ./worker

          links:

            - db

            - redis

          networks:

            - back-tier        #在同一个网络上 不需要links

    Volumes:

      上面 的

      volumes:

       - "db-data:/var/liv/postgresql/data"  #将外部db-data挂载到container 的 /var/liv/postgresql/data 内

      会有单独的一个 volumes (与 services 同级别) 对db-data 进行 阐述

      类似于 docker volume create db-data

      eg:

      volumes:

        db-data:

    Nerworks:

      上面 的

      networks:

        - back-tier        #在同一个网络上 不需要links

      会有单独的一个 networks (与 services 同级别) 对back-tier 进行 阐述

      类似于  docker nerwork create -d bridge back-tier

      networks:

        front-tier:

          driver: bridge

        back-tier:

          driver: bridge

4编写 docker-compose.yml

# docker compose api 版本

version: ''3''

 

services:

# 定义了 两个 service 分别是 名字分别是 wordpress 和 mysql

  wordpress:

#image 为 word press

    image: wordpress

#本地 8888 端口 映射 容器 80 端口

    ports:

      - 8888:80

#wordpress 连接数据库 的 host 为 mysql , passwword 为 root 类似于 -e

    environment:

      WORDPRESS_DB_HOST: mysql

      WORDPRESS_DB_PASSWORD: root

#指定连接 的网络 为 my-bridge

    networks:

      - my-bridge

 

  mysql:

    image: mysql:5.7.27

# 数据库 root 的 连接密码 和 所使用的数据库名称

    environment:

      MYSQL_ROOT_PASSWORD: root

      MYSQL_DATABASE: wordpress

# 外部 mysql-data 挂载到 容器内的 /var/lib/mysql

    volumes:

      - mysql-data:/var/lib/mysql

#指定连接 的网络 为 my-bridge

    networks:

      - my-bridge

 

# 定义 volumes

volumes:

  mysql-data:

 

# 定义 networks

networks:

  my-bridge:

    driver: bridge

 

com.mongodb.MongoSocketOpenException:异常打开套接字

com.mongodb.MongoSocketOpenException:异常打开套接字

如何解决com.mongodb.MongoSocketOpenException:异常打开套接字

能帮帮我吗。我尝试在ubuntu服务器上部署应用程序。我使用docker-compose up。出现此错误。

com.mongodb.MongoSocketopenException: Exception opening socket
spring-mongo    |       at com.mongodb.internal.connection.socketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
spring-mongo    | Caused by: java.net.ConnectException: Connection refused (Connection refused)
spring-mongo    |       at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_212]
spring-mongo    |       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_212]
spring-mongo    |       at java.net.socksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_212]
spring-mongo    |       at java.net.socket.connect(Socket.java:589) ~[na:1.8.0_212]
spring-mongo    |       at com.mongodb.internal.connection.socketStreamHelper.initialize(SocketStreamHelper.java:63) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.socketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       at com.mongodb.internal.connection.socketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.0.5.jar!/:na]
spring-mongo    |       ... 3 common frames omitted

Dokerfile

FROM openjdk:8-jdk-alpine
ADD target/spring-mongo.jar spring-mongo.jar
ENTRYPOINT ["java","-jar","spring-mongo.jar"]

application.properties

spring.data.mongodb.host=mymongodb
spring.data.mongodb.port=27017
spring.data.mongodb.database=mongo
spring.data.mongodb.repositories.enabled=true

docer-compose.yml

version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    ports:
      - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    ports:
      - 8080:8080
    links:
      - mymongodb

解决方法

在您的 docker-compose.yml 中,您仅将Spring Boot应用程序链接到mongodb。

在您的 application.properties 中,您使用的mongodb不是有效的主机。

您需要为spring应用程序传递环境变量。为此,您可以在 docker-compose.yml 中执行类似的操作。

version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    ports:
      - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    ports:
      - 8080:8080
    environment:
      - MONGO_HOST=mymongodb
    links:
      - mymongodb

在您的 application.properties 中,

spring.data.mongodb.host=${MONGO_HOST}

,

尝试 depends_on ,而不是链接, 它对我有用。

version: "3"
services:
  mymongodb:
    image: mongo:latest
    container_name: "mymongodb"
    network_mode: host
    restart: always
    ports:
     - 27017:27017
  spring-mongo:
    image: spring-mongo:1.0
    container_name: spring-mongo
    network_mode: host
    restart: always
    ports:
     - 8080:8080
    depends_on:
     - mymongodb

Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'

Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'

如何解决Compose 文件 ''./docker-compose.yml'' 无效,因为: services.docker-image 的配置选项不受支持:''update_config''

我正在尝试使用 docker-compose 创建一些副本,但我不断收到相同的错误

ERROR: The Compose file ''./docker-compose.yml'' is invalid because: Unsupported config option for services.docker-image: ''update_config''

  1. version: "3"
  2. services:
  3. docker-image:
  4. build: .
  5. replicas: 5
  6. update_config:
  7. parallelism: 1
  8. delay: 10s
  9. restart_policy:
  10. condition: on-failure

解决方法

您的 docker-compose.yml 文件的格式无效。请尝试以下操作:

  1. version: "3"
  2. services:
  3. docker-image:
  4. build: .
  5. deploy:
  6. replicas: 5
  7. update_config:
  8. parallelism: 1
  9. delay: 10s
  10. restart_policy:
  11. condition: on-failure

我们今天的关于从Spring Appdocker-compose获取Mongodb连接上的“异常打开套接字”的分享就到这里,谢谢您的阅读,如果想了解更多关于'docker-compose' 不是使用 docker-compose 和 docker-machine、25.docker compose 简介 和 docker-compose.yml 参数介绍、com.mongodb.MongoSocketOpenException:异常打开套接字、Compose 文件 './docker-compose.yml' 无效,因为: services.docker-image 的配置选项不受支持:'update_config'的相关信息,可以在本站进行搜索。

本文标签: