При подключении Docker-контейнера mongo из mongo-express ошибка: имя не разрешается

при подключении Docker-контейнера mongo из mongo-express ошибка: имя не разрешается, я попробовал и командную строку, и docker-compose, результат тот же. В конце концов, mongo-express запустился, но переопределил мою конфигурацию аутентификации.

вот моя командная строка и docker-compose.yml

  docker run -d \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=password \
  --net mongo-network \
  --name mongodb \
  mongo
  docker run -d \
  -p 8081:8081 \
  -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin \
  -e ME_CONFIG_MONGODB_ADMINPASSWORD=password \
  -e ME_CONFIG_MONGODB_SERVER=mongodb \
  --net mongo-network \
  --name mongo-express \
  mongo-express

docker-compose.yml

version: '3.8'

services:
  mongodb:
    image: mongo:latest
    container_name: mongodb
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    networks:
      - mongo-network

  mongo-express:
    image: mongo-express
    container_name: mongo-express
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: admin
      ME_CONFIG_MONGODB_ADMINPASSWORD: password
      ME_CONFIG_MONGODB_SERVER: mongodb
    ports:
      - "8081:8081"
    networks:
      - mongo-network

networks:
  mongo-network:
    driver: bridge

Вот логи монго-экспресса:

Waiting for mongo:27017...
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:42 UTC 2024 retrying to connect to mongo:27017 (2/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:43 UTC 2024 retrying to connect to mongo:27017 (3/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:44 UTC 2024 retrying to connect to mongo:27017 (4/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:45 UTC 2024 retrying to connect to mongo:27017 (5/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:46 UTC 2024 retrying to connect to mongo:27017 (6/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:47 UTC 2024 retrying to connect to mongo:27017 (7/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:48 UTC 2024 retrying to connect to mongo:27017 (8/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:49 UTC 2024 retrying to connect to mongo:27017 (9/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
Mon Sep  2 05:59:50 UTC 2024 retrying to connect to mongo:27017 (10/10)
/docker-entrypoint.sh: line 15: mongo: Name does not resolve
/docker-entrypoint.sh: line 15: /dev/tcp/mongo/27017: Invalid argument
No custom config.js found, loading config.default.js
Welcome to mongo-express 1.0.2 



Mongo Express server listening at http://0.0.0.0:8081
Server is open to allow connections from anyone (0.0.0.0)
basicAuth credentials are "admin:pass", it is recommended you change this in your config.js!

Фактически это переопределяет мою конфигурацию учетными данными аутентификации по умолчанию.

Ниже приведены запущенные докер-контейнеры:

CONTAINER ID   IMAGE           COMMAND                  CREATED          STATUS          PORTS                    NAMES
140166b91b1e   mongo:latest    "docker-entrypoint.s…"   20 minutes ago   Up 20 minutes   27017/tcp                mongodb
8f4560a378e9   mongo-express   "/sbin/tini -- /dock…"   20 minutes ago   Up 20 minutes   0.0.0.0:8081->8081/tcp   mongo-express

Проверка сети: при запуске из docker-compose кажется, что ни один из них не работает в сети монго, контейнер сети монго пуст.

[
    {
        "Name": "mongo-network",
        "Id": "570316b27c9ab2c7b2754bf24d2b3aef55d0f6d6e34dd24eafa13f967f36fb1a",
        "Created": "2024-09-02T00:35:00.924602966Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]
При запуске из командной строки оба находятся в сети монго с разными IP-адресами.
[
    {
        "Name": "mongo-network",
        "Id": "570316b27c9ab2c7b2754bf24d2b3aef55d0f6d6e34dd24eafa13f967f36fb1a",
        "Created": "2024-09-02T00:35:00.924602966Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "ac0dddac98e156f3e80c654e3af8a08ebd1650895b6a776837f744fdb0f92eb2": {
                "Name": "mongodb",
                "EndpointID": "35fea4556b3b9baa7a7648d0a5c1e7eef4e2c1f8c279cbd93478bb0c1504063d",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "d909f70b33fb0b26d4e15b1767c0c281e4989cc10fb831c0c9baba3ebc01e63d": {
                "Name": "mongo-express",
                "EndpointID": "63890afb86f6c66d95c3059509e9441a1418a81177949714e25f5fbcadad8053",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

Я попробовал перезапустить докер, но ничего не изменилось.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

По этой ссылке вы используете устаревшие переменные среды для mongo-express. docker-compose.yaml должен быть таким:

services:
  mongodb:
    image: mongo:latest
    container_name: mongodb
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    networks:
      - mongo-network

  mongo-express:
    image: mongo-express
    container_name: mongo-express
    environment:
      ME_CONFIG_MONGODB_URL: 'mongodb://admin:password@mongodb:27017'
      ME_CONFIG_BASICAUTH: false
    ports:
      - "8081:8081"
    networks:
      - mongo-network

networks:
  mongo-network:
    driver: bridge

В этом примере я отключил базовую аутентификацию для веб-панели mongo-express. Если вы хотите включить базовую аутентификацию, добавьте эти две переменные:

ME_CONFIG_BASICAUTH_USERNAME: root
ME_CONFIG_BASICAUTH_PASSWORD: pass

Теперь mongo-express отключил требование аутентификации, и любой может получить доступ к порту. ###Сервер открыт, чтобы разрешить любые подключения (0.0.0.0). Базовая аутентификация отключена. Рекомендуется установить для useBasicAuth значение true в файле config.js.

Oliver xu 02.09.2024 22:14

Я упомянул в конце своего ответа: установите ME_CONFIG_BASICAUTH: true и установите последние две переменные среды в моем ответе на ваш файл компоновки.

xirehat 02.09.2024 22:40

Спасибо, я пропустил последние несколько строк.

Oliver xu 03.09.2024 05:16

Не упоминай об этом. Если этот ответ полезен, пожалуйста, проголосуйте за него и примите его как правильный.

xirehat 03.09.2024 06:42

Другие вопросы по теме