эквивалентная команда запуска docker для работы docker-compose (postgres) - PullRequest
0 голосов
/ 17 октября 2018

Если у вас есть файл docker-compose для postgres, который работает как положено, и я могу получить к нему доступ из R. См. Соответствующий контент ниже.Тем не менее, мне также нужна эквивалентная команда «Docker Run», но по какой-то причине не могу заставить это работать.Насколько я могу сказать, команды / настройки эквивалентны.Любые предложения?

  postgres:
    image: postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      PGDATA: /var/lib/postgresql/data
    ports:
      - 5432:5432
    restart: always
    volumes:
       - ~/postgresql/data:/var/lib/postgresql/data

Используемая мной команда запуска docker:

    docker run -p 5432:5432 \
      --name postgres \
      -e POSTGRES_USER=postgres \
      -e POSTGRES_PASSWORD=postgres \
      -e PGDATA=/var/lib/postgresql/data \
      -v ~/postgresql/data:/var/lib/postgresql/data \
      -d postgres

РЕДАКТИРОВАТЬ 1: В обеих настройках я пытаюсь подключиться из другого контейнера / службы Docker.В настройке docker-compose различные сервисы описаны в одном и том же файле yml

РЕДАКТИРОВАТЬ 2: Ответ Дэвида предоставил всю необходимую мне информацию.Создайте сеть Docker и ссылайтесь на эту сеть при каждом вызове docker run.Для тех, кто интересуется сценарием оболочки, который использует эту настройку для соединения postgres, pgadmin4 и контейнера данных, с R и Python, смотрите ссылку ниже:

https://github.com/radiant-rstats/docker/blob/master/launch-rsm-msba-pg.sh

1 Ответ

0 голосов
/ 17 октября 2018

Docker Compose автоматически создаст для вас сеть Docker (для каждого файла Compose).Для работы DNS между контейнерами нельзя использовать сеть Docker по умолчанию , но любая именованная сеть будет работать.Так что вам нужно добавить этот бит настройки:

docker network create some-name  # default options are fine
docker run --net some-name --name postgres ...
  # will be accessible as "postgres" from other containers on
  # the "some-name" network
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...