「Dockerコンテナがうまく起動しない」そんなときにチェックするコマンドまとめ

「Dockerコンテナがうまく起動しない」そんなときにチェックするコマンドまとめ

「Dockerコンテナがうまく起動しない」チェックするコマンドまとめ

今回はきつかったです。
納期1日前に来るデザイン原稿
納期前週金曜日に行われたDockerの本番環境構築への変更
そして、これに伴うコンテナ未起動問題と修正しようとして行った作業によるDocker立ち上がらない問題。

てんこ盛りでした。

と言う事で、その時の現場検証に使われたコマンドで私が知らなかったものを中心にまとめます。

まず、納期直前に行われたDockerの構築編集について触れてみる

私自身この作り方を知りませんでした。

networks:volumes: という形で用意し、パーツ分けしたコンテナを統合しています。

例えば、Nodejsはnodejs:というコンテナを作成してしまい networks: – hogeで繋げてあげるとフレームワーク内のnode.jsとして扱えるというもの。

これね、nodeだけでバージョン管理できたりと効果が非常に高いそうです。

目次的なやつを書いときます

  • GitHubからReadできるようにする【wgetで取得】
  • 一発で行けるからつい使うけど、問題発生時は分けましょう【起動しない時の問題切分け】
  • UPができなくてもコンテナの中に入る方法はある
  • Dockerの存在確認【Dockerのバージョンが知りたくなる時がある】

一発で行けるからつい使うけど、問題発生時は分けましょう
docker-compose build
docker-compose up

Dockerの存在確認
docker –version
docker-compose –version

立ち上がってないコンテナに入る
docker-compose run –rm phpfpm sh

今回の原因その1

https://www.koikikukan.com/archives/2013/10/15-013333.php

改行コードが化けている。これはJISエンコードでCRLF改行が入ると出てくるらしい
UTF8じゃなければ、そりゃ走らないだろう。

ただこれを解決しても起動しないコンテナが…。

wgetで取得できるようにする

https://qiita.com/Hide-Zaemon/items/400b21183197481ecef4
DeployKey 生成

ココで生成された鍵をGitHubにDeployKeyとして登録するとGitHubからReadできるようになる。

これを実行した後にWgetをインストールする

問題の切り分け方法

まずは、imageなどをすべて消す。
その後、Buildだけ実行
buildが実行出来たら次は起動プロセスを確認
最後に、個別にコンテナを指定して個別に起動確認する

これで、コンテナが起動しない理由を個別×パートで確認することができる。

Dockerの存在確認

コンテナが立ち上がらない時、Dockerのバージョンを確認するときがあります。
例えば、開発PC上では動いているのに本番サーバーで docker-compose up -d –buildしたら動かなくなったとか。

そんな時に確認するものにバージョン情報があります。

これでバージョン確認はOK。

立ち上がってないコンテナに入る

このコマンド知らなかったんですよね。

Buildが完了していて、且つ起きなかったコンテナに入ることができます。
なんで up で起きなかったかの状況確認に最適です。

まとめ

研修のつもりで外部の企業さんにエンジニアとしてお仕事をもらうようになって2か月が経過しました。
おかげで新しい気付きを沢山もらいつつ、刺激的にお仕事できています。
ただ、このブログの更新がおろそかになってますが…。

まぁ、忙しいのはいいことだ!