Так вот ситуация, у меня есть контейнер работает встроенный с этим dockerfile:Докер-контейнер опубликованных портов недоступен?
FROM python:2-onbuild
EXPOSE 8888
CMD [ "nohup", "mock-server", "--dir=/usr/src/app", "&" ]
я запустить его с помощью этой команды:
docker build -t mock_server .
docker run -d -p 8888:8888 --name mocky mock_server
Я использую его на макинтош так boot2docker собирается и я ударил его с boot2docker ip на 8888. Я попробовал boot2docker ssh и ударил контейнер оттуда. Я побежал docker exec -it mocky bash
и ps aux
шоу:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.9 113316 18576 ? Ss 15:16 0:00 /usr/local/bin/python2 /usr/local/bin/mock-server --dir=/usr/src/app &
root 5 1.6 0.1 21916 3440 ? Ss 17:52 0:00 bash
root 9 0.0 0.1 19180 2404 ? R+ 17:53 0:00 ps aux
Когда я завить его:
curl -I -XGET localhost:8888/__manage
HTTP/1.1 200 OK
Content-Length: 183108
Set-Cookie: flash_msg_success=; expires=Thu, 04 Sep 2014 17:54:58 GMT; Path=/
Set-Cookie: flash_msg_error=; expires=Thu, 04 Sep 2014 17:54:58 GMT; Path=/
Server: TornadoServer/4.2.1
Etag: "efdb5b362491b8e4b8347b97ccafeca02db8d27d"
Date: Fri, 04 Sep 2015 17:54:58 GMT
Content-Type: text/html; charset=UTF-8
Так что приложение работает внутри контейнера, но я не могу получить что-нибудь от него снаружи. Что можно сделать здесь?
Кроме того, нет необходимости в 'nohup' в вашей линии CMD Dockerfile. –
@PeterLyons, если я не делаю что-то вроде «nohup», серверный mock-сервер сервера, похоже, не запускается. – Hasen
А может, он выходит, если stdin - это не tty или что-то, чего, вероятно, не следует делать. Но просто FYI для большинства правильных сетевых серверов «nohup» не требуется и не должен использоваться в линии докеры «CMD». –