Docker-compose:在SIGTERM之后关闭端口

时间:2015-07-22 08:19:18

标签: ruby-on-rails docker docker-compose

我正在为我的开发环境使用Docker和Docker Compose。

当我在项目之间切换时,我通常会有一些痛苦,因为我收到PORT ALREADY IN USE错误。

如果我docker-compose up(使我的rails服务器启动),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

我做错了吗?

1 个答案:

答案 0 :(得分:0)

我会使用docker-compose up -d启动容器作为后台进程。然后,您可以以干净的方式使用docker-compose stop关闭。