2015-07-22 2 views
1

Я использую Docker и Docker Compose для своей среды разработки.Docker-compose: закрыть порты после SIGTERM

Когда я переключаюсь между проектами, я обычно испытываю некоторую боль, потому что получаю ошибку PORT ALREADY IN USE.

Если я делаю docker-compose up (что делает запуск моего сервера рельсов), то есть Ctrl+C правильный способ прекратить этот контейнер?

Вот мой docker-compose.yml файл:

db: 
    image: postgres 
    ports: 
    - "5432" 
web: 
    build: . 
    command: bundle exec rails s -p 3000 -b '0.0.0.0' 
    volumes: 
    - .:/myapp 
    ports: 
    - "3000:3000" 
    links: 
    - db 

Иногда я просто удалить ./tmp/pids/server.pid, но иногда мне приходится kill -9 какой-то процесс.

Вот, например, какие ps -edf | grep docker выходы:

root  742  1 0 Jul18 ?  00:01:11 /usr/bin/docker -d -H fd:// 
root  22341 742 0 Jul21 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32781 -container-ip 172.17.0.48 -container-port 5432 
root  22510 742 0 Jul21 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3030 -container-ip 172.17.0.49 -container-port 3030 
root  28766 742 0 Jul21 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 32783 -container-ip 172.17.0.57 -container-port 5432 
root  28886 742 0 Jul21 ?  00:00:00 docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3000 -container-ip 172.17.0.58 -container-port 3000 

я делаю что-то не так?

ответ

0

Я запустил контейнер в качестве фонового процесса с помощью docker-compose up -d. Затем вы можете сделать остановку с docker-compose stop чистым способом.

+0

Не знаю об этом. Я попробую и расскажу! благодаря –