ものぐさ日記(仮)

特にテーマはありません。仕事のこと、趣味のこと、思いついたこと、だらだら綴っていきます。

【docker】docker image build でエラーになった。

CentOS + Apache + PHP + ODBC ドライバ入りのコンテナの作成で悪戦苦闘中。dockerfile 修正→ビルドエラー→原因調査を繰り返している。

 

ビルドエラーになると、作成途中のコンテナが残っている。ビルドが失敗した原因を調査する為に作成途中のコンテナをコミットし、イメージを作成後、それを実行し、原因を調査する。それを以下のような手順で実施した。

 

①コンテナの一覧を表示する


azurite:websv hoge$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
d94e2c66c97e        3adf425ebd1b        "/bin/sh -c 'yum ins…"   15 minutes ago      Exited (1) 15 minutes ago                         stoic_pascal
08290d0d3a4d        2f0b7e90d045        "/bin/sh -c 'yum ins…"   26 minutes ago      Exited (127) 25 minutes ago                       naughty_dewdney
c6858f531029        32ad066318bd        "/bin/sh -c 'cd /tmp…"   33 minutes ago      Exited (127) 33 minutes ago                       awesome_ramanujan    

 

②対象のコンテナをコミットし、イメージを作成する


azurite:websv hoge$ docker container commit d94e2c66c97e badcontainer
sha256:e6b55ba6c3058373c7eebbbac47207045ef16cfa13f516396148ba4ef0843d23

※badcontainer は任意のイメージ名です

 

③イメージからコンテナを作成し、シェルで操作できるようにする(シェルを抜けたら、コンテナは削除)

azurite:websv hoge$ docker run --rm -it badcontainer bash

これでコンテナ内の状態が確認できる

 

おわり