leaning diary Rails

【Learning Diary4】dockerでの環境構築を学ぶ

02/10/2023

【Learning Diary4】dockerでの環境構築を学ぶ

 

忘れないよう、重要な部分のみでも書き留めます。

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を指定しておくことで対処できます。

 

公式のRubyのDockerイメージのbundlerの挙動

 

docker-library/ruby

-leaning diary, Rails