簡體   English   中英

docker-compose up不重新創建容器

[英]docker-compose up not recreate container

我創建了兩個容器,一個是oracle db,一個是apache tomcat。

我使用以下docker compose來運行它們:

version: '3.4'
services:
  tomcat:
     build: ./tomcat/.
     ports:
       - "8888:8080"
       - "59339:59339"
     depends_on:
       - oracle
     volumes:
       - ./tomcat/FILES:/usr/test/FILES
       - ./ROOT.war:/opt/tomcat/webapps/ROOT.war
     expose:
       - "8888"
       - "59339"
   oracle:
     build: ./database/.
     ports:
       - "49161:1521"
     environment:
       - ORACLE_ALLOW_REMOTE=true
     expose:
       - "49161"

我使用命令docker-compose up ,必須根據文檔重新創建容器。

但是實際上,它僅以停止時的容器狀態啟動舊容器(相同的容器ID),這是一個問題,因為我將其用於測試並且希望從干凈的狀態開始(ROOT.war必須是每次我運行命令時部署)。

這很正常,或者我錯過了一些事情。

我正在將docker用於Windows 18.06.1-ce和Compose 1.22.0

更新

因此, up重新創建容器是不正確的,但是僅在發生某些更改時才這樣做嗎?

我也看到docker-compose down這取出容器和力up重新創建它們,才是正確的計算策略? 我不理解的是為什么每次我停止容器時都會保存容器的狀態(由tomcat創建的app.pid文件在一次簡單的啟動后仍然存在而沒有先前的關閉

是的,這是預期的。

聽起來您想重新啟動

docker-compose restart

或強制重建:

docker-compose --build start

docker-compose啟動和停止容器,如果您想在每次必須按照docs傳遞--force-recreate標志時重新創建它們,則可以。

--force-recreate將重新創建容器

從文檔

--force-recreate =>重新創建容器,即使它們的配置和映像沒有更改。

docker-compose up -d --force-recreate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM