2016-02-13 79 views
0

我使用docker-compose開發django應用程序:我有一個相當簡單的設置 - 一個用於Web服務和一個用於數據庫的服務。有時我需要通過docker運行manage.py命令。爲什麼在完成命令後Docker-compose容器仍然存活?

我使用下面的命令:

$ docker-compose run web ./manage.py migrate 

它工作得很好。但問題是,泊塢窗保持容器的命令結束後也:

$ docker-compose ps 
     Name      Command    State   Ports   
------------------------------------------------------------------------------------ 
seeder_data_1  sh        Exit 0       
seeder_postgres_1 /docker-entrypoint.sh postgres Up  0.0.0.0:5432->5432/tcp 
seeder_web_1  fab run_local     Up  0.0.0.0:8000->8000/tcp 
seeder_web_run_14 ./manage.py migrate    Up        

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS       PORTS     NAMES 
61d3aee5bb39  seeder_web   "./manage.py migrate" 4 minutes ago  Restarting (2) 55 seconds ago       seeder_web_run_14 
85e91cb9383c  seeder_web   "fab run_local"   5 minutes ago  Up 5 minutes     0.0.0.0:8000->8000/tcp seeder_web_1 
565b01dedb7b  postgres:latest  "/docker-entrypoint.s" 5 minutes ago  Up 5 minutes     0.0.0.0:5432->5432/tcp seeder_postgres_1 

這是相當惱人的:我不希望有每噸只用於一個命令殭屍容器。命令返回後如何自動結束機器,有什麼方法嗎?我知道我可以手動殺人,但這有點煩人。

或者這背後有邏輯嗎?

回答

2

聽起來像是你想要--rm標誌爲docker-compose runhttps://docs.docker.com/compose/reference/run/。它已被提及幾次,使其成爲默認(https://github.com/docker/compose/issues/2774https://github.com/docker/compose/issues/943),但看起來他們都失去了蒸汽。

+0

謝謝,至少不能在docker-compose配置文件中配置... –

+0

'--rm'通常會清理您只能用'docker ps -a'看到的退出容器。它不應該影響正在運行的容器。這是否阻止你的容器繼續運行? – Matt

+0

命令返回後,他們被刪除,這正是我想要的。 –

相關問題