このコンテナには
コンテナA → ubuntu
コンテナB → Nginx
コンテナC → Ruby
このようにコンテナ一つに対して、一つのOSやらサーバーを入れていくのでしょうか?
コンテナに入るのはLinuxを普通にインストールした際に入るファイル群の一部です。
(全部入れても良いのですが、その場合でもカーネルは入りません。カーネルはOS本体のものを使うからです。)
す。
1つのコンテナには。Nginxなどのアプリケーションとそれが動くために必要なOSのファイル群が入ります。
・ コンテナD → ubuntu(のファイル群の一部) + Nginx
・ コンテナE → ubuntu(のファイル群の一部) + PostgreSQL
・ コンテナF → ubuntu(のファイル群の一部) + redis
Ubuntu(のファイル群の一部)という表現を使っていますが、なぜ一部かというと、
全部入れると1つのコンテナのサイズが大きくなってしまうからです。
ただ必要最低限にしようとすると、どのファイルが必要かを取捨選択する手間がかかります。
そこで実際には、アプリケーションを動かすのに必要最低限のファイルしか持たない、docker運用に適したディストリビューションがあるのでそういうものをdockerに入れるOSファイル群のベースとして使うことが多いです。代表的なものにalpineというLinuxディストリビューションがあります。
alpineを使うと不要なものを削るのではなくalpineに入ってないものを必要に応じて追加で入れていくというアプローチになります。
・ コンテナG → alpine + (必要なアプリケーション) + Nginx
例えば、コンテナAに ubuntuとRubyを入れたりはできないという認識であっていますか??
入れられます。
コンテナ動作に必要なものを自分で選択して入れる(ように指定する)ということになります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。