2016-07-08 2 views
0

Когда я делаю echo $DOCKER_HOST, я получаю пустые данные.Как определить IP для контейнеров в хост-машине ubuntu?

У меня есть 3 контейнера работает начали с ниже сочинить файла:

db: 
    image: mongo:latest 
    volumes: 
    - air_scout-mongodb:/data/db 
app: 
    build: . 
    env_file: .env 
    environment: 
    RAILS_ENV: $RAILS_ENV 
    links: 
    - db 
    expose: 
    - "3000" 
web: 
    build: . 
    dockerfile: config/containers/Dockerfile-nginx 
    links: 
    - app 
    ports: 
    - "80:80" 

И ниже содержимое/и т.д./хост файл для всех 3-х контейнеров, включая хозяина убунту:

host /etc/hosts content 
    127.0.0.1 localhost 
    127.0.1.1 bajratech-codemilan-pc 
    192.168.99.100 air_scout.docker 
    # The following lines are desirable for IPv6 capable hosts 
    ::1  ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
web container nginx /etc/hosts contents. // container id = 04f4b2a137db 
    127.0.0.1 localhost 
    ::1 localhost ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
    172.17.0.3 airscout_app_1 50a8bbe3d0f9 
    172.17.0.3 app 50a8bbe3d0f9 airscout_app_1 
    172.17.0.3 app_1 50a8bbe3d0f9 airscout_app_1 
    172.17.0.4 04f4b2a137db 
app container unicorn /etc/hosts contents. // container id = 50a8bbe3d0f9 
    127.0.0.1 localhost 
    ::1 localhost ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
    172.17.0.2 airscout_db_1 4743428b65c4 
    172.17.0.2 db 4743428b65c4 airscout_db_1 
    172.17.0.2 db_1 4743428b65c4 airscout_db_1 
    172.17.0.3 50a8bbe3d0f9 
db container mongodb /etc/hosts contents. // container id = 4743428b65c4 
    127.0.0.1 localhost 
    ::1 localhost ip6-localhost ip6-loopback 
    fe00::0 ip6-localnet 
    ff00::0 ip6-mcastprefix 
    ff02::1 ip6-allnodes 
    ff02::2 ip6-allrouters 
    172.17.0.2 4743428b65c4 

I 'm Не удается получить доступ к контейнеру web (nginx) на моей главной машине, как его найти?

+1

'docker ps'? он отобразит IP и порт. На вашем хосте, если ваш запуск вашего сдерживающего устройства, ip будет ip вашего устройства (так что localhost будет работать). Вместо этого вы можете найти порт, который 'docker ps' отобразит – dwursteisen

+0

спасибо за быстрый ответ @dwursteisen, но у меня есть адрес« 0.0.0.0:80->80/tcp, 443/tcp », когда я делаю докер пс. – codemilan

+0

это означает, что ваш контейнер выставляет порт 80 и порт 443. И что к порту 80 вашего контейнера можно получить доступ к порту 80 вашего локального компьютера. Таким образом, вы можете попробовать «telnet localhost 80» для подключения к вашему nginx – dwursteisen

ответ

1

Пожалуйста, проверьте свои конфигурации port и убедитесь, что они правильно привязаны. Еще одно хорошее место - посмотреть журналы после запуска docker-compose up.

Также убедитесь, что ваш файл .env содержит все необходимые переменные среды, в основном SECRET_KEY_BASE для рельсов.

+0

спасибо за предоставленную информацию @przbadu, проблема была в том, что она не корректно задавала переменные среды $ RAILS_ENV и $ SECRET_KEY_BASE, и я их исправил, и приложение теперь в прямом эфире. Еще раз спасибо. – codemilan

+0

Рад, что это вам помогло:) .... ура – przbadu

1

Чтобы узнать, на котором IP/порт работает ваш контейнер, вы можете использовать команду docker ps

docker ps покажет, какой контейнер работают, и какой порт каждого использования контейнера и экспорта. (см. колонку порта)

$ docker ps 
CONTAINER ID  IMAGE      COMMAND    CREATED    STATUS    PORTS    NAMES 
4c01db0b339c  nginx     bash     17 seconds ago  Up 16 seconds  0.0.0.0:80->80/tcp, 443/tcp  nginx1 

В этом примере порт 80 контейнера отображается на порт 80 вашего устройства. Это означает, что вы можете получить доступ к своему контейнеру через порт 80 вашего аппарата, используя команду telnet, например:

telnet localhost 80 
+0

приятно. Спасибо тебе, друг. – codemilan

Смежные вопросы