はじめに
DockerコンテナでEntrypointを修正する方法を紹介する。Entrypointが誤っておりコンテナが起動しなくなった場合などに有用。
動作環境
- Ubuntu 22.04
- Docker version 27.1.2, build d01f264
方法
-
修正したいコンテナが起動中の場合は停止
-
修正したいコンテナIDの確認
docker ps -a
一番左の列に表示されるのが、コンテナID(CONTAINER ID)。
-
コンテナの設定ファイルを編集(管理者権限が必要)
- 管理者権限取得
sudo su
- コンテナの設定ファイルの場所に移動
cd /var/lib/docker/containers/{CONTAINER_ID}
- {CONTAINER_ID} : 上記で確認したコンテナID
- 現状の設定ファイルをバックアップ
cp config.v2.json config.v2.json.back
- 設定ファイルを修正
vi config.v2.json
- EntrypointとArgsを以下に変更
"Path":"/bin/bash", "Args":[]
- 上記にすることで、デフォルト設定に戻る(
/bin/bash
のEntrypoint設定)。
- 上記にすることで、デフォルト設定に戻る(
- 「Ctrl-D」で管理者権限の終了
- 管理者権限取得
-
Dockerを再起動
sudo service docker restart
- 起動中のコンテナは終了してしまうので注意
-
コンテナを起動
docker start -i {CONTAINER_ID}
- Entrypointが変更されて正常に起動することを確認
sudo service docker restart
をしないで、docker start -i {CONTAINER_ID}
などでコンテナを起動すると、変更した設定が元に戻ってしまうので注意する。
まとめ
DockerコンテナのEntrypointを修正する方法を紹介した。コンテナ内のEntrypointが誤っており、コンテナが正常に起動しなくなった場合に、コンテナを破棄することなくEntrypointを修正できた。Entrypointのエラーでコンテナが起動しなくなった場合に有用。
参考