0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】docker-composeで立てたWindowsコンテナを再起動する方法

Posted at

はじめに

Dockerを使えばWindowsかLinuxかは関係ないと思っていた時期が僕にもありました。
OSによる挙動の違いはともかくとして、コンテナ化の方法によって差異が生じるみたいです。
Windowsでコンテナを作成するアプローチは大きく2種類あります。Hyper-Vを使う方法とWindowsのプロセス分離を使う方法です。詳細は割愛しますが、両者ではDocker(composeだけかもしれないけど)の挙動が微妙に違うらしく、再起動設定周りでハマりました。

やりたいこと

Windows Serverコンテナでdocker-composeの再起動設定を有効にする。

環境

OS:Windows Server 2019 Datacenter

問題

マシン起動時にコンテナ立ち上げの有無を設定できるrestartオプションがDockerにはありますが、Linux環境で動作したdocker-compose.ymlをそのままWindows Serverコンテナに移植してもうまく再起動できませんでした。

原因

起動時と再起動時で、Docker周辺の動作状況を確認していたところ、docker-compose起動時に有効になるデフォルトネットワークが、再起動時に消失していることが判明しました。

対策

networksの設定をnatのexternalで作成すれば解決しました。

version: '3.5'

networks:
  default:
    external:
      name: "nat"

services:
  hoge:
    build:
      context: .
      dockerfile: ./hoge/Dockerfile
    container_name: hoge
    restart: always
    command: powershell
    stdin_open: true
    volumes:
      - .\hoge:C:\hogehoge

最後に

困ったらマイクロソフトの公式ドキュメントを見るのが一番確実ですね。

注意および免責事項

本記事の内容はあくまで私個人の見解であり、所属する組織の公式見解ではありません。
本記事の内容を実施し、利用者および第三者にトラブルが発生しても、筆者および所属組織は一切の責任を負いかねます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?