Qnap コンテナステーション

こんにちは

Docker Composeで新しいアプリを作成し、アップデートしたいと考えています。

現在、「再作成」する必要があり、アプリは一度削除されて再作成されます。

なぜ、Dockerの–buildフラグのようにアプリをアップデートするオプションがないのでしょうか?その方法なら、アプリの作成がより速くなり、更新されたコンポーネントだけが再作成されます。

ありがとうございます!

やるべきことがいくつかあります。

1.) dockerリポジトリ項目を指定する際は、タグを使って希望するバージョンを確実に指定してください。例えば、以下は私のSmokePing用のcomposeファイルです。「smokeping:latest」と記載しているのが分かると思います。新しいバージョンがあれば、リポジトリ管理者がタグを正しく設定していれば、それをプルするはずです。

しかし…(composeファイルの後をご覧ください)…

smokeping:
    image: lscr.io/linuxserver/smokeping:latest
    container_name: smokeping
    hostname: smokeping #オプション
    networks:
      qnet-network:
        ipv4_address: 192.168.1.3
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MASTER_URL=http://192.168.0.3:80/smokeping/ #オプション
      - CACHE_DIR=/tmp #オプション
    volumes:
      - /share/Container/somokeping/config:/config
      - /share/Container/smokeping/data:/data
    ports:
      - 80:80
    restart: unless-stopped
networks:
  qnet-network:
    driver_opts:
      iface: eth3
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: eth3
      config:
        - subnet: 192.168.0.0/23
          gateway: 192.168.1.1

2.) タグが正しくても、QNAP(キューナップ)は必ずしもそれをプルしてくれない場合があります。これは、すでに「smokeping:latest」と認識しているイメージのコピーを持っているためです。ContainerStationの「イメージ」へ行き、保存されているイメージを削除する必要があります。下のスクリーンショットでは、「smokeping:latest」という名前のイメージがあるので、実際にリポジトリの最新ビルドをプルしない可能性があります。それを削除し、再構築すれば問題なく進めるはずです。

ここで重要なのは、Compose(コンポーズ)を使用し、コンテナのデータストレージを自分で管理することです。

この方法なら、コンテナを作成、削除、再構築しても、データや設定を失うことはありません。

また、recreateで常にイメージを更新したい場合は、以下の行をcomposeファイルに追加できます。これにより、Container Stationが常にイメージをダウンロードするようになります。

    pull_policy: always

古いイメージを削除するために、定期的にイメージをプルーンすることを忘れないでください。

これを知る前は、新しいイメージをダウンロードしてから再作成するなどの作業が必要でしたが、これで自動化されたプロセスになります。

おおっ!これは素晴らしいです!ありがとうございます!

私は、コンテナを監視するDockerイメージであるWUDも運用しています。そのため、pull alwaysでrecreateが機能することと合わせて、Container Station上でコンテナの管理がとても簡単です。

みなさん、本当にありがとうございます!!