logo-sm

お問い合わせは Webフォームから

ブログ

WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。

2024.04.08

当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけどWindwos(WSL2)ではダメとかあったりするので、WSL上ではsudoでdocker、docker-composeコマンドを実行してもらっています。

WSL2上で最近発生したエラーで以下のエラー出力がありました。

ERROR: for mysql  'ContainerConfig'
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 203, in perform_command
    handler(command, command_options)
  File "/usr/lib/python3/dist-packages/compose/metrics/decorator.py", line 18, in wrapper
    result = fn(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1186, in up
    to_attach = up(False)
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1166, in up
    return self.project.up(
  File "/usr/lib/python3/dist-packages/compose/project.py", line 697, in up
    results, errors = parallel.parallel_execute(
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
    result = func(obj)
  File "/usr/lib/python3/dist-packages/compose/project.py", line 679, in do
    return service.execute_convergence_plan(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 579, in execute_convergence_plan
    return self._execute_convergence_recreate(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 499, in _execute_convergence_recreate
    containers, errors = parallel_execute(
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 108, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 206, in producer
    result = func(obj)
  File "/usr/lib/python3/dist-packages/compose/service.py", line 494, in recreate
    return self.recreate_container(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 612, in recreate_container
    new_container = self.create_container(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 330, in create_container
    container_options = self._get_container_create_options(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 921, in _get_container_create_options
    container_options, override_options = self._build_container_volume_options(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 960, in _build_container_volume_options
    binds, affinity = merge_volume_bindings(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 1548, in merge_volume_bindings
    old_volumes, old_mounts = get_container_data_volumes(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 1579, in get_container_data_volumes
    container.image_config['ContainerConfig'].get('Volumes') or {}
KeyError: 'ContainerConfig'

どうやらDockerコンテナの設定に関連するContainerConfigキーが見つからないとのことらしいです。な〜んだ!そんなことか!って思うけどもContainerConfigキーなど見たこともなければ設定したこともありませんし、そもそもMacのDocker上では動いていました。

なのでよくわからなかったのであるまじき行為だが、これが使い捨て環境の良いところと割り切りつつ再ビルドを行ってみました。ただ再ビルドは以下ではありません。

  1. sudo docker-compose stop
  2. sudo docker-compose rm
  3. sudo docker-compose up -d

これだとまた同じエラーが発生しますので以下の手順を行いました。

  1. sudo service docker status.  
  2. sudo service docker restart. 
  3. sudo docker-compose down. 
  4. sudo docker-compose build –no-cache. 
  5. sudo docker-compose up -d. 

それぞれの内容を説明すると、

  1. WSL2上でDockerデーモンの動作確認。
  2. 念の為、Dockerデーモンを再起動。
  3. docker-compose.yaml上に定義されているサービスを停止し、関連するコンテナ、ネットワーク、ボリュームを削除する。
  4. docker-compose.yaml上に定義されているサービスのDockerイメージをビルドするが–no-cacheオプションで、キャッシュされているイメージを使用せずに最初からビルドします。これにより古い設定や依存関係を確実に更新します。
  5. docker-compose.yaml上に定義されているサービスを起動します。

としたことでめでたくWSL2上のコンテナも起動しました。

関連記事

  • VSCode (内のPowerShell)でアドレス設定を切り替え!
    【経緯】 最近携わった案件で大量のNW機器のキッティングをした際、それぞれにSSHでの接続性などを確認するテス […]

    2023.10.13

  • PaloaltoでWindows NTPサーバに同期
    【事象と対処法】 オフライン環境のPaloaltoでNTPの機能確認をする必要があり、Windows標準のNT […]

    2023.10.13

  • Cisco Packet Tracerを使ってネットワークを学習しよう! -2-
    Packet Tracer紹介の2回目です。今回は、CCNA試験範囲の中で、多くの方にとって理解しにくい技術の […]

    2023.03.28

  • パートナー

  • 人材育成・採用情報