Docker-compose: 在 SIGTERM 之后关闭端口
Docker-compose: close ports after SIGTERM
我正在为我的开发环境使用 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
我是不是做错了什么?
我会使用 docker-compose up -d
将容器作为后台进程启动。稍后您可以使用 docker-compose stop
以干净的方式关闭。
我正在为我的开发环境使用 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
我是不是做错了什么?
我会使用 docker-compose up -d
将容器作为后台进程启动。稍后您可以使用 docker-compose stop
以干净的方式关闭。