Intereting Posts
Можно ли запускать многоступенчатые изображения Docker на старых версиях Docker? Отключить ведение журнала в интерактивных контейнерах Связь между двумя фляжными сервисами в Докере Как распределить ценность между всеми контейнерами докеров, спрятанными оператором одним и тем же вызовом «состыковать докеры»? Ошибка Docker при попытке входа в систему (и ничего) Невозможно доставить изображения докеров в приватный реестр докеров Доступ к частным git-репозиториям через установку npm – Docker Container Как создать копию существующего изображения докеров Контейнеры-докеры запускают асинхронный установить контейнер docker env из файла конфигурации демона Странное поведение лоротрота postrotate и docker Docker + Weave dns не разрешает на другом хосте Сети докеров, не подверженные хосту в Windows Docker Alpine image + grpc: Предупреждение: небезопасная функция чтения среды 'getenv' используется Передать переменные окружения кубернетам во время выполнения

Изображение Docker из существующего приложения Rails / Unicorn / MySQL

Я новичок в Docker и экспериментирую, создавая образ из существующего приложения Rails / Unicorn / MySQL. Мои файлы ниже, и изображение успешно создается, но я не понимаю, действительно ли все работает нормально, поскольку я не могу получить доступ к традиционному URL-адресу локального хоста Unicorn или IP-адресу boot2docker.

Итак, мой вопрос: как я могу получить доступ к серверу Unicorn локально на OSX с использованием изображения Docker?

Dockerfile

# Dockerfile FROM seapy/rails-nginx-unicorn # Publish port 8080 EXPOSE 8080 CMD ["bundle", "exec","unicorn", "-p", "8080"] 

Команда запуска Docker Image

docker run --name games-app --link test-mysql:mysql -p 8080 -d -e SECRET_KEY_BASE=test sample_rails_games_app

Выход Docker PS

 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf9c45d62763 sample_rails_games_app "bundle exec unicorn 17 minutes ago Up 17 minutes 0.0.0.0:32777->8080/tcp games-app 93485cb7bcca mysql "/entrypoint.sh mysq 6 hours ago Up 6 hours 3306/tcp test-mysql 

Если я пытаюсь поразить localhost:8080 или http://192.168.59.103:8080/ Я получаю Gateway Timeout: can't connect to remote host

Выход журналов докеров

 docker logs cf9c45d62763 I, [2015-07-30T22:44:44.941674 #1] INFO -- : listening on addr=0.0.0.0:8080 fd=9 I, [2015-07-30T22:44:44.941927 #1] INFO -- : worker=0 spawning... I, [2015-07-30T22:44:44.944000 #1] INFO -- : master process ready I, [2015-07-30T22:44:44.944836 #8] INFO -- : worker=0 spawned pid=8 I, [2015-07-30T22:44:44.945103 #8] INFO -- : Refreshing Gem list I, [2015-07-30T22:44:46.729708 #8] INFO -- : worker=0 ready 

Я также пробовал обходные пути boot2docker отсюда безрезультатно: https://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md

Любые рекомендации приветствуются.

Вы должны использовать eth1-адрес вашего boot2docker vm.

Выполнить из оболочки:

 boot2docker ssh 

а потом

 ifconfig eth1 docker@boot2docker:~$ ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:69:53:F6 inet addr:192.168.59.103 Bcast:192.168.59.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe69:53f6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:170143 errors:0 dropped:0 overruns:0 frame:0 TX packets:98176 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:107722766 (102.7 MiB) TX bytes:13713741 (13.0 MiB) docker@boot2docker:~$ 

192.168.59.103 – адрес, который вы хотите использовать с вашего Mac. Порт зависит от того, какой порт вы отправляете. Например, в этом случае:

 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2e1d63d6928a f6ac7e4116f3 "/usr/sbin/sshd -D - 3 hours ago Up About an hour 0.0.0.0:32771->22/tcp mad_jones 104f730aa7da f6ac7e4116f3 "/usr/sbin/sshd -D - 3 hours ago Up About an hour 0.0.0.0:32770->22/tcp reverent_almeida 

это либо 32771 либо 32770 . В этом примере это sshd-сервер, в вашем случае это будет ваш единорог, который будет порт 32777 Поэтому я думаю, что вы подключаетесь к правильному адресу, но вам нужно подключиться к 32777 вместо этого.

Надеюсь, поможет.