コンテナ
CIで落ちたチェックを自分のPCで試そうとしたら、道具のバージョンが合わずにうまくいかない
「自分のPCに入れなくていいよ。CIと同じ道具をコンテナで動かせば、そろうから」
「コンテナ」って、何のことだろう…?
コンテナは、アプリと、それが動くのに必要なもの(ライブラリや設定)をひとまとめにして、ほかと区切って動かすしくみです。
中身ごと持ち運べるので、コンテナを動かすしくみ(Docker など)があるコンピューターなら、ほぼ同じように動きます。
このページで分かること
- コンテナは、アプリと、それが動くのに必要なもの(ライブラリや設定)をひとまとめにして、ほかと区切って動かすしくみ
- 中身ごと持ち運べるので、コンテナを動かすしくみ(Docker など)があれば、自分のPC・CI・クラウドでほぼ同じように動く
- 仮想マシンはOSを丸ごと持つ
- 代表例は Docker
身近な例えで理解する
港で使う輸送用コンテナは大きさが決まっていて、中身が何でも、同じクレーン・船・トラックで運べます。荷物は箱ごとに分かれていて、ほかの箱とまざりません。
- 箱に詰めた荷物一式アプリと、動くのに必要なもの
- 大きさが決まっているので、どの船でも運べるコンテナを動かすしくみがあれば、どのコンピューターでもほぼ同じように動かせる
- 箱ごとに分かれているほかのコンテナと区切られている
- 船やクレーンコンテナを動かすしくみ(Docker など)
ただし、本物のコンテナは「運ぶ」ための箱、ITのコンテナは「その場で動かす」ためのしくみという点は違います。
ちょっと確認
Q1先輩のひとこと
先輩「自分のPCでは動いたのにCIだと動かない…それ、コンテナで動かせばそろうよ」
なぜそろう?
例えを外して、実際のしくみ
ここからは実際のしくみ
必要なもの一式を持つ
区切られている
コンテナは、ほかのコンテナや土台のコンピューターから区切られた中で動きます。1つのコンテナを消しても、ふつうはほかのコンテナには影響しません。ただし、カーネルを共有しているぶん、区切りの強さは仮想マシンほどではありません
イメージから作る
コンテナは「イメージ」というひな型から作ります。同じイメージからは、同じ中身のコンテナができます。くわしくは次のページで扱います。代表的な道具は Docker です
このページのまとめ
- コンテナ
- アプリと必要なものをひとまとめにして、区切って動かすしくみ
- 同じように動く
- 中身ごと持ち運べるので、どこで動かしても結果がそろいやすい
- 仮想マシンとの違い
- 仮想マシンはOSを丸ごと持つ。コンテナはカーネルを共有して軽い
- イメージ
- コンテナを作るためのひな型(次のページ)
先輩のひとことの意味
先輩「自分のPCに入れなくていいよ。CIと同じ道具をコンテナで動かせば、そろうから」
「チェック用の道具を自分のPCに直接入れると、バージョンなどがCIとずれやすい。CIと同じ中身のコンテナで動かせば、道具もそのバージョンも同じになるので、同じ結果が出る」という意味です。
練習問題で確かめる
Q24択
コンテナと仮想マシンの違いとして正しいものは?
Q34択
コンテナの説明として正しいものは?
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。