我有一個應用程序在docker-compose
定義的多個Docker容器上運行。一切都從我的用戶正常工作和輸出的樣子:用`docker-compose`重複使用容器
Name Command State Ports
------------------------------------------------------------
myuser_app_1 /config/bootstrap.sh Exit 137
myuser_data_1 sh Exit 0
myuser_db_1 /run.sh Exit 143
現在我試圖運行docker-compose up
與supervisord
(請參見下面的supervisord.conf
相關部分),並且問題是,容器現在命名爲myapp_app_1
, myapp_data_1
和myapp_db_1
,即它們是從頭開始創建的,前一個容器的所有定製都會丟失。
我嘗試重命名容器,但它給出了一個錯誤,說已經有一個名稱的容器。
問:有什麼方法可以強制docker-compose
重用現有的容器,而不是根據各自的圖像創建新的容器嗎?
supervisord.conf
... [program:myapp] command=/usr/local/bin/docker-compose -f /usr/local/app/docker-compose.yml up redirect_stderr=true stdout_logfile=/var/log/myapp_container.log stopasgroup=true user=myuser
如果您只需要每個應用程序一個容器,那麼您可以在docker-compose.yml文件中使用'container_name:app' –
'docker-compose'默認使用yml文件的文件夾名稱作爲項目名稱,將該名稱添加到所有容器名稱。您可以使用'docker-compose -p custom_name'指定項目名稱。我不確定這是否會強制重用現有的具有相同名稱的容器。如果您有不想覆蓋的重要數據,請首先在不重要的容器上首先進行測試。 –