Возможно ли подключить неконтейнерное приложение для весенней загрузки к контейнеру MongoDB Docker? - PullRequest
0 голосов
/ 13 апреля 2020

Я установил Minikube в моем P C для использования Docker. Я пытаюсь подключить локальное приложение весенней загрузки к mon go db на docker контейнере, но я получаю эту ошибку:

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128) ~[mongodb-driver-core-3.11.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.11.2.jar:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_151]
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_151]

Это моя конфигурация:

spring.data.mongodb.uri=mongodb://{mongo_db_ip}:27017/test 

Я пробовал использовать эти IP-адреса, но ни один из них не работает:

° IP получен по команде minikube ip

° IP получен с docker inspect mongo (172.17.0.7):

[
    {
        "Id": "a60664fa816c32bc738fffd414741bf726728bb3446512d7a48b886f96d0de24",
        "Created": "2020-04-13T08:04:51.981023712Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "mongod"
        ],
        ...
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "acd0744e81967a40376d47d6d471d96d7f5b23f298c62e4e2931d9359c899966",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "27017/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/acd0744e8196",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "4b665d337577688b8a600ce7c07a3006ca34de2d5a0945d57f73a16e705c5651",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.7",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "xxx",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "f59dfca8fc755bc75a6fbdfb429b529be75b906cf1fb50437f5ebe9bc75c6f7b",
                    "EndpointID": "4b665d337577688b8a600ce7c07a3006ca34de2d5a0945d57f73a16e705c5651",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.7",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,...
                }
            }
        }
    }
]

° Localhost IP: localhost и 127.0.0.1

Я запустил контейнер mongodb с этой командой:

docker run --name=mongo mongo

Журналы не показывают никаких проблем:

2020-04-13T08:04:52.661+0000 I  CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2020-04-13T08:04:52.662+0000 W  ASIO     [main] No TransportLayer configured during NetworkInterface startup
2020-04-13T08:04:52.663+0000 I  CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=a60664fa816c
2020-04-13T08:04:52.663+0000 I  CONTROL  [initandlisten] db version v4.2.5
2020-04-13T08:04:52.663+0000 I  CONTROL  [initandlisten] git version: 2261279b51ea13df08ae708ff278f0679c59dc32
2020-04-13T08:04:52.663+0000 I  CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.1.1  11 Sep 2018
2020-04-13T08:04:52.664+0000 I  CONTROL  [initandlisten] allocator: tcmalloc
2020-04-13T08:04:52.664+0000 I  CONTROL  [initandlisten] modules: none
2020-04-13T08:04:52.664+0000 I  CONTROL  [initandlisten] build environment:
2020-04-13T08:04:52.664+0000 I  CONTROL  [initandlisten]     distmod: ubuntu1804
2020-04-13T08:04:52.665+0000 I  CONTROL  [initandlisten]     distarch: x86_64
2020-04-13T08:04:52.665+0000 I  CONTROL  [initandlisten]     target_arch: x86_64
2020-04-13T08:04:52.665+0000 I  CONTROL  [initandlisten] options: { net: { bindIp: "*" } }
2020-04-13T08:04:52.666+0000 I  STORAGE  [initandlisten]
2020-04-13T08:04:52.666+0000 I  STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-04-13T08:04:52.666+0000 I  STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-04-13T08:04:52.667+0000 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=556M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-13T08:04:53.270+0000 I  STORAGE  [initandlisten] WiredTiger message [1586765093:270733][1:0x7f3cb7ad9b00], txn-recover: Set global recovery timestamp: (0, 0)
2020-04-13T08:04:53.277+0000 I  RECOVERY [initandlisten] WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)
2020-04-13T08:04:53.286+0000 I  STORAGE  [initandlisten] Timestamp monitor starting
2020-04-13T08:04:53.290+0000 I  CONTROL  [initandlisten]
2020-04-13T08:04:53.291+0000 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-04-13T08:04:53.293+0000 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-04-13T08:04:53.294+0000 I  CONTROL  [initandlisten]
2020-04-13T08:04:53.295+0000 I  STORAGE  [initandlisten] createCollection: admin.system.version with provided UUID: afe59aef-96cf-43cf-8923-e9483157d7d0 and options: { uuid: UUID("afe59aef-96cf-43cf-8923-e9483157d7d0") }
2020-04-13T08:04:53.413+0000 I  INDEX    [initandlisten] index build: done building index _id_ on ns admin.system.version
2020-04-13T08:04:53.414+0000 I  SHARDING [initandlisten] Marking collection admin.system.version as collection version: <unsharded>
2020-04-13T08:04:53.414+0000 I  COMMAND  [initandlisten] setting featureCompatibilityVersion to 4.2
2020-04-13T08:04:53.414+0000 I  SHARDING [initandlisten] Marking collection local.system.replset as collection version: <unsharded>
2020-04-13T08:04:53.414+0000 I  STORAGE  [initandlisten] Flow Control is enabled on this deployment.
2020-04-13T08:04:53.415+0000 I  SHARDING [initandlisten] Marking collection admin.system.roles as collection version: <unsharded>
2020-04-13T08:04:53.416+0000 I  STORAGE  [initandlisten] createCollection: local.startup_log with generated UUID: 9061e9af-a095-452e-94b3-a5fcb9fd3a6c and options: { capped: true, size: 10485760 }
2020-04-13T08:04:53.426+0000 I  INDEX    [initandlisten] index build: done building index _id_ on ns local.startup_log
2020-04-13T08:04:53.427+0000 I  SHARDING [initandlisten] Marking collection local.startup_log as collection version: <unsharded>
2020-04-13T08:04:53.427+0000 I  FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2020-04-13T08:04:53.429+0000 I  SHARDING [LogicalSessionCacheRefresh] Marking collection config.system.sessions as collection version: <unsharded>
2020-04-13T08:04:53.430+0000 I  STORAGE  [LogicalSessionCacheRefresh] createCollection: config.system.sessions with provided UUID: 436d0bd3-ebf8-4fd2-94f4-1bbce3eca74b and options: { uuid: UUID("436d0bd3-ebf8-4fd2-94f4-1bbce3eca74b") }
2020-04-13T08:04:53.431+0000 I  NETWORK  [listener] Listening on /tmp/mongodb-27017.sock
2020-04-13T08:04:53.431+0000 I  NETWORK  [listener] Listening on 0.0.0.0
2020-04-13T08:04:53.431+0000 I  NETWORK  [listener] waiting for connections on port 27017
2020-04-13T08:04:53.444+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: done building index _id_ on ns config.system.sessions
2020-04-13T08:04:53.457+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: starting on config.system.sessions properties: { v: 2, key: { lastUse: 1 }, name: "lsidTTLIndex", ns: "config.system.sessions", expireAfterSeconds: 1800 } using method: Hybrid
2020-04-13T08:04:53.457+0000 I  INDEX    [LogicalSessionCacheRefresh] build may temporarily use up to 200 megabytes of RAM
2020-04-13T08:04:53.457+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: collection scan done. scanned 0 total records in 0 seconds
2020-04-13T08:04:53.459+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: inserted 0 keys from external sorter into index in 0 seconds
2020-04-13T08:04:53.461+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: done building index lsidTTLIndex on ns config.system.sessions
2020-04-13T08:04:53.463+0000 I  SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2020-04-13T08:04:54.001+0000 I  SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>

Я понимаю, что могу подключиться к своей базе данных mon go в Docker Если я настрою правильный IP. Но как я могу получить IP?

Спасибо за помощь в решении моей проблемы (Y)

1 Ответ

1 голос
/ 13 апреля 2020

вам нужно передать порт хоста в порт контейнера docker run -p 27017:27017 --name=mongo mongo

Вы также можете использовать сеть хоста для службы роя, передав --network host

docker run --network host --name=mongo mongo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...