忘れないよう、重要な部分のみでも書き留めます。
Docker
Linuxカーネルの機能を使い、名前空間(namespace)を分離(isolate)した特別な状態でプロセスを実行できるようにするプラットフォーム。
Docker Engine(ドッカーエンジン)
サーバ側で動作するDockerプログラムの総称。
docker
Docker Engineを操作するコマンドライン・ツール。
CLI(Command Line Interface)
UI(User interface)の一つ。すべてのやり取りを文字入力によって行う。
CLI 【Command Line Interface】 コマンドラインインターフェース
コンテナ
特別な状態のプロセス。
Dockerイメージ
コンテナを実行する元になるファイルや関連情報(メタ情報)。
Dockerイメージが設計図(class)、コンテナがそのインスタンスと考える。
Docker Hub
イメージレジストリ。
publicとprivateがある。
publicの中には公式・非公式の両方が存在する。
docker-compose
コマンドラインツール。複数の機能を持つ。
- ymlファイル(docker-compose.yml)を使って複数のコンテナの一括操作を可能にする。
- コンテナ間の内部通信を可能にする。
- コンテナ間、ローカルとコンテナ間でデータを共有するvolumeが定義できる。
Docker Compose入門 (1) ~アプリケーションをコンテナで簡単に扱うためのツール~
実践 Docker - ソフトウェアエンジニアの「Docker よくわからない」を終わりにする本
公式イメージ(ruby) を利用する場合はbundlerのパスに注意
bundlerの設定ファイルが格納されるディレクトリを指定する変数に、BUNDLE_APP_CONFIGがあります。
publicレジストリにある公式のrubyイメージでは、BUNDLE_APP_CONFIGは /usr/local/bundle に設定されています。
コンテナ起動時にこの変数が未定義の場合は、bundleがない状態となり、bundlerは/usr/local/bundle を探しに行くことになります。
/usr/local/bundle に起動させたい設定ファイルを置いていない場合はエラーがおきます。
BUNDLE_APP_CONFIGを最初から定義しておくこと、またdocker-compose.ymlやDockerfileにbundle pathを指定しておくことで対処できます。