#394 今更ですが、Docker使えますか?必須知識であるDockerが使える状態とは?

2025/9/28 ·

  • この番組はエンジニアの成長は楽しい学びからをもとに我々が学んだことをワイワイとアウトプットしていく番組でございますということで今日はドッカーの話でございますいきつぎなしじゃあドッカーの話ということでじゅんぺくんドッカー使いたいけど全然ドッカーの使い方がわからないよ助けてってやってもらっていいですかわかりましたほぼやったな今うわぁ



  • 開発するってなったらなんかドッカー使った方が良さそうなんだけどあんま使ったことなくてどうやったらいいんだ助けてーのりえもーしょうがないなじゅんぺいくんはそんなグズでデブなじゅんぺいくんのために今回はねドッカーの話を持ってきたよめちゃくちゃ悪いなすいませんまあ可能性ありますからねはい今日ちょっとドッカーの話をしようかなと思っててはいあの



  • ふとした時にですねコミュニティ内とかでもたまにドッカーの話ドッカーできるようになりたいですみたいな話が上がってたりとかあと僕SESやってた時たくさんの研修生を見ててドッカー使えるようになりたいですみたいなっていう話をねすごいよく聞くなと思ってたんですよで今ドッカーってどれくらい必須知識かっていうとめちゃくちゃ必須知識じゃないですかそうですね昨日ですね



  • ふと思ったんですよ今の技術的なトレンドって何なんだろうってあんま置いてないなと思って突如ディープリサーチ走らせたんですねその結果出てきたのがドッカー必須だよねって中にコンテンツの一個としてあったんですよでも今や当たり前で使われているような技術になってきてますみたいなプログラミング言語はPython TypeScriptラストコトリンあたりが有力ですよみたいな



  • ってことでちょっとDocker今まであんまりこう基礎部分をやったことがなかったなと思って番組ではいどのレイヤーがあるの?そうDockerを使えるってめっちゃいろんなレイヤーがあるかなと思ってて大きく分けてね3つのレベルがあると思うんですよほうそうなんですかその1既存のDocker環境を使えるうんうんこれはそんなにハードル多分高くないはずだいたい数コマンドで済むうんけどうん



  • これ裏側でどういうのが動いてるんじゃないかどういうのが動いてるよっていうのを把握しておいた方がいいんじゃないかなぐらいレベル2自分でドッカー環境を作れるまああれですねじゃあ開発するぞってなった時に簡単にこう開発環境をかけるみたいなイメージですかねこれができればきっと個人開発とかもすごくやりやすくなるはずでレベル3



  • 実務で問題解決応用ができるというレベルですねこれは本当に何でしょういわゆるプロダクションレディな環境をどっかを効率的に使ってすごく開発体験のいい状態で開発環境を作れるみたいなそんなイメージですかね今回のエピソードではですねレベル2の途中らへんまで行けるぐらいの感覚を目指してます行きたいですねよしってことではい



  • ちょっと今日ねどういう感じでいこうかすっごい悩んだんですけどテンション感の話かな何の話だろういやビュッフェで例えるべきかどうかでずっと悩んでたんですよこの1週間さすがにやりすぎかなと思ったんで今日はですね新たなチャレンジとして今から言ってもらった単語をもとにオンプレだったらこういうことVMだったらこういうことドッカーだったらこういうことだよっていうのを当てはめて



  • 何個も例を出すことによって分かりやすくなるんじゃないかなと思ってすごいななんか根槌みたいな芸風ですねだからこれが失敗したらこの部分を丸ごとカットするうわいいなこのトークは消さないでほしい収録ならではだなそれはじゃあ我々も2個目みたいなテンション出さない方がいいですねそうだよ一定の常に最初みたいなね



  • お任せくださいそうしないと不自然な感じになっちゃうから累計500回以上ホットキャストやってるんでいけると思いますすげえいけるかってことでねなんでこの3つオンプレとVMと比較してるかっていうと結構歴史的な流れを重要視してるんですけど元々はオンプレで運用されてたわけじゃないですか



  • そこからVMが起きてある課題が解決されてそこからコンテナが出てきてまたある課題が解決されてっていう流れだと思うんでこの3つを平行で例えていくのがいいんじゃないかなって思って最初のお題はじゅんぺいくんお願いしていいですか洋服洋服って洋服ってTシャツみたいな話?



  • なるほどね洋服をオンプレで例えたらオンプレとかVMとかどっかだったらってことですねはいわかりましたまずですねオンプレこれはもうねTシャツでいい?Tシャツ作るとしたらですよオンプレは糸から縫ってます糸から縫って模様も自分でつけてますVM



  • これは最初に無地のTシャツがあってそこに模様をつけてますでどっか買ってきてますえーつまりで今それをカイチが判断してますそうかなーってのを判断してますいやまあ言いたいことは分かりますよそのレイヤーがあってでねどこを仮想化するというかどこをまあ返しろというか



  • コントロールできるような範囲にするかっていうことだと思うんですけどまあでもそっかでもなんか言ってる意味わかりましたノリさんが多分販売をするっていう観点ででオンプレだったらなんならなんかその制作過程までイメージした方がいいかもしれないですね糸から作る場合は多分がっちり工場必要なんですよね工場っていうか機材がっつり機材必要なんですよだから多分その辺のコンテンツは無理多分



  • コンセントの話まで広がってる今電源の話それがねいろいろ準備した上で組み上げるそれゆえオーダーメイドです市販のパソコン1台とかじゃ無理だよみたいな話ですかTシャツとパソコンちょっと紐付けむずすぎるけど市販のミシンとかにしてほしかったけどせめてね



  • っていうのがオンプレで市販のミシンで生きるのがVMですか?刺繍をガキャキャキャってやってコンテナなんでしたっけ?どっかもうねTシャツ買ってる行き過ぎてるんじゃないか?行き過ぎてるかTシャツ買った上でスズリぐらいの感じスズリ難しいんでちょっと解説してください



  • PCでオリジナルのプリントを入稿してプリントしたものがお家に届くスタイルそれ非常に適切だと思いますよかった何が言いたいかというと管理するレイヤーを減らして実際に開発とか実際にサービスを動かす上で必要な環境を用意するまでの手間をなくしているとこれはコンピューターの世界なんでそれをやろうと思うと仮想なんとかっていう言い方をするんですけど



  • Tシャツに仮装とかないんで強いて言ったらスズリは仮装かもしれないですけどそうねっていうのが多分のりさんが言いたかったことだなというのでTシャツはOKとしましょうすごいなこんな深掘りされると思わなかったすごいテンポでここぐらい行こうと思ってたのに次行きましょうじゃあ次のタイムはじゃあ僕カイチから洋服行ったんで焼肉だな



  • はい焼き肉ね一番テンション上がるんで焼き肉がやっぱり焼き肉ね焼き肉が足りたんですよまずオンプレだったらこれはね豚とか牛から切り刻んでますねその生きたで肉を作って焼いてるオンプレミスですねなんかそうでVMだったらブロック肉ぐらいから



  • 家の包丁で切れるドッカーはもう完全にスーパーに売ってる焼肉パックのセットですね味付いてない焼肉用の肉味付いてないバージョン味付けは自分でできるこんぐらいじゃないですか納得してるっぽいもっと言うと僕は味付いてない肉と味付いてる肉があると思います味付いてる肉がある難しいこと言っちゃうんですけどいわゆるドッカーハブって言われる



  • イメージ共有サイトみたいなのがあってそこでなんかOSだけ入ってますみたいなやつとMongoDB入ってますみたいなやつがありますけどMongoDB入ってますは味付け肉ですねなるほどねってことはあれだDockerHubがスーパーみたいなもんだそうですねそれはもう完全にそうです完全にそう



  • 肉買うけど味付いてるのもあれば味付いてないのもあるよと味付いてるのであれば家で買ってきてすぐ焼いて使えるともっと言うとライブラリとかモンゴとかもバージョンありますけどEOLとかあるんで賞味期限切れたやつがあるんで気を付けてもいいですなるほどね焼肉じゃんこれ



  • 焼肉が一番良かったじゃん伝わってる賞味金切れたやつってじゅんぺいはい最近そのEOLの話ですねスーパーにはあんまないですけどドッカーハブにはあるってことですねドッカーハブにあんのかなあるでもありますよ残ってるはずどうだろうあんまりちゃんとドッカーハブ古いのじわじわ見たことないからじわじわって言わないなびっくり見たことないから焼肉みたいでしたね



  • 焼肉だな完全に賞味期限切れギリありそうだな切れたてみたいなやつありますね切れたてアップデートアップグレートこれからするよって人がまだ参照してるかもしれないイメージが残ってる感ありますね賞味期限切れ間近と賞味期限切れありますねそっか切れてるのもないと環境急に壊れたりする人と共有できなくなったりするから必要なのかだと思います



  • そこだけが唯一焼肉と違うポイントですねまあちょっと本当の焼肉は分かんないんですけどねあるかもしれない怖いこと言ってる僕は働いたことないから分かんないけど本当は正直切れてるけどつって焼けば大丈夫っしょゼロとは言えないよく焼いてくださいねって書いてよくないな一旦ちょっと具体例は



  • 例えばもうこれで終わりにしようかなと思いますまあなんかね扱う範囲が狭くなるっていうのがなんかわかったとりあえず今の段階でオンプレはなんか結構大変そうVMはそれよりちょっと楽そうどっかはもうちょい楽そうぐらいの感覚を持っていただければって感じですねそうですねオンプレは圧倒的に大変そうだなっていう



  • 本当に圧倒的に大変なんですよということでその3つの歴史の流れを次はお話ししていこうかなと思います僕思うにDockerを扱うってDockerの使い方を知るではないと思ってるんですよ特にレベル2の話環境を作るってなった時に必要なのってDockerについての知識じゃなくてどうやってサーバー作るかっていう話だと思うんですねそれぞれの時代でどうやってサーバー作ってたの話を次やっていこうかなって感じですね



  • 嬉しい嬉しいだろグズでデブな順平くんがいややめて会ったことない人本当にそうなんかと思っちゃう可能性ありますけどね多分一番痩せてるよね一番痩せてるね普通ですねということでオンプレ時代からいきますよお願いしますオンプレ時代サーバー立てるってなった時にどういうことしてたかっていうと



  • まずですねサーバー買わなきゃいけないんですよ場合によってはデータセンターとかに設置したりとかっていうのが必要なんですけど買って1台のサーバーにまず1つの役割を持たせるんですね例えばウェブサーバーだったらウェブサーバー用のサーバー買ってその中にウェブサーバー用のソフトウェアをインストールして次アプリケーションサーバーも必要だってなったらアプリケーション用のサーバーを買って



  • その中に例えばスクリプト言語を動かすためのランタイムとか入れてで、そいつらをネットワークでつなげてよし、動くぞってやるわけですね大変ですよ、まず土地あるというかラック余ってる系みたいなところが始まりますからねあーなるほどね、確かにそっか、サーバーデータセンター行ったことないんですけど物理的なマシンを置くから確かに



  • パソコンからすると土地ですね確かにパソコン用の土地が必要ですとあれってラック単位で課金なんですか場所によると思いますがラック単位じゃないかな多分ラックごとに開けれるんですよなんでラックごとにしか同じお客さん同じラックに別のお客さんが同居することはないと思いますうん



  • 見やすい見やすいというかセキュリティ上アクセスできちゃうから想像ですけど多分そうだと思いますこの時代に直面してた課題これはですね物理サーバーの能力をですね使い切れないっていう問題があったんですね



  • なるほどね例えばウェブサーバー1台買いましたこれをウェブサーバーにしますって設置しましたとでもアクセスって別に一定なわけでもないじゃないですか忙しい時期もあればそうじゃない時期もあるとって時にしかもそんなギリギリで使うわけにはいかないですよね基本的にはピークに耐えきれるようにして買わなきゃいけないんでってなると普段は結構余ったリソースがあるんですよこれを



  • これどういうことかっていうと要はサービス増えるたびにどんどん機械増えていって設置スペースもめっちゃ必要になって電力コストも増えていくとこれちょっと無駄が多いぞっていうことでバーチャルマシンっていうのが登場したんですねバーチャルマシンは具体的なサービス名だと多分VMスフィアVMウェアVMウェアだVMウェアとかバーチャルボックスとか



  • その辺が有名ですかねVMware VsphereでしたVMware Vsphereですあたりが仮想マシンを建てるためのソフトウェアですね正直完全オンプレ時代僕知らないですね入った時からVM時代だったんで



  • 僕なんならもうコンテナ自体に足半分入ってましたねそうですよねこうやってVMが登場したんですけどVM簡単に言うと何してるかっていうと1台のPCのマシンの中で複数OS立ち上げるみたいなことをやってるんですねこれによって今まで使い切れなかったリソースっていうのを結構ギリギリまで使えるようになったというか要は1台でウェブサーバーと他のアプリケーションとかもできるようになったんで



  • リソースが効率的に使えるようになりましたよとなのでこの時代の人たちは何してたかっていうとマシン買いますとその中でVMを次入れますとそのVMの中にVMの設定を使ってOSを複数立ち上げますとそれぞれの立ち上げたOSの中に必要なソフトウェアをインストールしていってサーバーを作ってましたよって感じですね



  • ちなみに今のりさんが言っているVMのリソースを効率的に使えるみたいな話ってオンプレのサーバーの上にVM載せてるのかAWSのEC2とかVMウェアのVSphereみたいに仮想マシン提供プロバイダーみたいなのがいてそこでVM使うイメージなのかというと後者ですかねめっちゃオンプレのイメージでいたわだからさっきオンプレ時代って言ったけどVMない時代と思っていいかもしれない



  • オンプレ&VM時代だったとしてオンプレのリソースにちょっと余裕を持っておきたいのは一緒なんじゃないですかそんなことないんですかね確かに多分そうだと思います余裕を持たせておくはずAWSとかAWSとかVMウェアみたいなまるっとハードウェアリソースがある場合は



  • 効率的に使えると思いますそうですねクラウドだったらもうそもそも買うとかじゃなくて買うっちゃ買うなんだけど物理マシン買わなくてよくなったんでボタン一つで増やせるようになったからギリギリまでも使えるとそういうことかギリギリまで使えるというよりは使ってるだけのお金になった方が近いかもしれないですねこのVM時代の課題感



  • はいくつかあるんですけどVMはですねまず重いですね持ったことあるんですかあるあるあるデッドリフトしたVMでVMVの部分持ってバーチャルバーチャル持って形VMの形してるんだねバーチャルって書いてあるんですけど結構重い60キロぐらいなるほどデッドリフトにちょうど結構重いですね



  • なんで、えーっと、ラックにすごい負荷がかかりますよと。で、あとね、別の意味で重いです。はい。物理的に重いからラックに負荷がかかります。はい。で、あと普通に軌道が重いです。要はOSを立ち上げてるみたいなもんなんで、なかなかの時間がかかるし、それ立ち上げてるときにすごいリソース消費しますと。ギリ使ったことあるんで、なんかそういうイメージありますわ。めちゃくちゃ重かったイメージが。そう。



  • もちろんねオンプレのみ時代と比べてPC買ったりとかは不要なんでだいぶ早くはなってるんですけどそれでもまだ重いですよとあとこれがまあなんならモチベーションに近いんじゃないかなって感じなんですけど環境差異の問題ってのがあるんですね例えばOSはテンプレート使って複製できるんですよVMなんですけど中にインストールするライブラリとかバージョンを揃えたりとか



  • 押しなきゃいけないんでなんかよくあるのは俺のVMでは動くのにあいつの環境では動かないのかみたいなそういう環境差異の問題が発生するわけですねそれはなんか先回りする言い方になるかもしれないんですけど構成を管理しづらいからですか構成管理というかなんかどうなんだなんかVMのイメージってさちょっと僕ベイグラントバーチャルボックスあたりしか使ったことないんですけど



  • なんかベイグラントの設定ファイルみたいなやつを書いてOS立ち上げた後に必要なミドルウェアとかって自分でインストールしてるんですか?そうそうそうそうその辺がなんか管理しづらいからインストールしてるものに差分が生まれちゃってあっちで動けるこっちで動かないが発生するそんなイメージですねですよね分かりました分かりました要は同じ環境を強制できないじゃないですか



  • そんな中Docker登場しましたとDockerの特徴はなんといってもコンテナ型と呼ばれる仮想環境を作ってるんですけどこれどんなイメージかというとOSは曲がりしてるみたいなOSは動いてるPCと同じものを使ってるんですけど



  • 中のその環境だけをねうまくパッケージ化してるっていうんですか今までVMだったらOSごと作ってたけどそのコアの部分は一旦共有のものを使わせてもらってそれ以外の部分を共有して使ってるそれ以外の部分を独自で作ってるみたいなイメージなんですよなんでこれまでのVMと比べて立ち上げがめっちゃ早くなりましたとプラス質問です



  • OSは曲がりしてるみたいな話だったと思うんですけど少しレイヤーを下げるとどういうことなんですかなんて言えばいいかな焼肉で例えるとどうですか焼肉で例えるとというかコンピューターで言うとストレージとかメモリにアクセスするときにコンテナと実際のハードウェアのやり取りをする間のやり取りは



  • 元サーバーのOSを使うそうそうそうっていうことですよねドッカーとかだとコンテナエンジンっていうのを使ってうまくそのOSのやり取りみたいなところっていうのは元の動いてるPCのものを使ってるみたいなイメージですねでVMはそうじゃないとVMはOSの上にですねハイパーバイザーっていうのを置いて



  • その上に丸ごとOSを作るっていうイメージですねだからOSの二段階活用二段活用OS on OSみたいな正確に言うと違うんでしょうけどイメージ的にはそう



  • だけどDockerの場合はOSは1個で上でプロセスが動いてるみたいなイメージですねコンテナエンジン君がってことかそれよりDocker早いですよと一旦VMと比べたDockerの違いみたいなところはそれプラス環境丸ごとパッケージングしてるんで



  • 実は他の環境だと動かないのにみたいなのが圧倒的に減ったんですよインストールされているソフトウェアごとパッケージしちゃってるみたいなイメージですねいわゆるDockerファイルっていうやつですかその通りですDockerファイルというかイメージって言ったことですか確かにイメージですねイメージっていうものにパッケージしてるんでそれをもとにそのコンテナっていうのを立ち上げてるんですけど



  • イメージの中にも全部ライブラリとかもパッケージングされてますよとなので環境サインのエラーがめっちゃ減ったとここまでがその大体の登場の流れですよとで実はこのDocker以外にもですねてかそもそもDockerより前にコンテナ技術って存在してたんですよ別にDockerが思想ではないというかじゃあなんでDockerが勝ったのっていう話ですねまずねこれねタイミングがすごい良かった



  • っていうのもDockerの登場って実はクラウドコンピューティングが登場したあたりなんですよクラウド環境とコンテナは非常に相性が良くてですねさっきのオンプレだとPC買わなきゃいけないけどクラウドだったらボタンポチポチでリソース増強できるよねって話あったと思うんですけどそれとこのコンテナのめっちゃ起動早いっていうのはすごい相性がいいんですよ



  • 足りないときにすぐ増やせるというかっていうのでクラウドコンピューティングが普及してきたよって追い風が一つあったプラスその同じ時期にですねDevOps文化の浸透っていうのがあってDevOpsは開発チームと運用チームが協力してビジネスの価値を迅速に届けるというやつですねこのDockerのイメージがあると



  • 環境差異がなくなるじゃないですかはいなので開発者が自分のPCで動いたでも運用者が本番環境で動かないみたいなその対立が減ったとか減らすことに結構寄与できたっていうのとあとはCICDとの相性がめっちゃ良かったっていうのがありますね要するにコンテナにパッケージングしてデプロイしていけばパイプラインすごい簡単にしかも軽量で動くから超早く動くよねみたいな



  • っていうところでまず時代的な追い風があったっていうのが一つ要因になりますよタイミング良かったイメージとしてとっておけるのがでかいですよねVMとかだとねCICDやろうと思ったらそのプロセスの中でいろいろ構築しなきゃいけないんですけどCICDとパイプライン外CIかCIでイメージ作っておけばCDデリバリー時にイメージ作る過程がないんでそれでデリバリー早くできるよねみたいなのも噛み合ってるっていう感じですよねそうだね



  • パイプライン上でビルドして本番関係でイメージ立ち上げるだけみたいなイメージですよねそうなんですっていうのもあって時代的にまずすごい合致してましたよっていうのが一つとじゃあその時期に別のコンテナが流行ってもおかしくないじゃんってなるじゃないですかただこのDockerはですね圧倒的な使いやすさの革命っていうのを起こしてるんですよコンテナ界隈でほう



  • 実はこれまであったコンテナ技術って簡単に言うと難しかったんですよ使い方がなんですけどこのDockerっていうのは結構革命を起きたポイントが3つあって1つはDockerコマンドDockerのコマンドあるじゃないですかビルドとかランとかイメージ作ったりイメージからコンテナ作ったりみたいなあれがすっごいシンプルで分かりやすい実際多分レベル1Dockerを使えるってあったじゃないですかはい



  • 僕はあれあのDocker Compose Upだけ知っとけばまあなんとかなるんじゃないかなってぐらい思ってるんですけどはい、UpとDownだけねうん知っとけばね最悪もうDown知らなくていいかもしれない確かにPCごと切ればPCごと切ればいいかもしれない上がっててもそんな困らないってことかそうっていう意味ですごいシンプルだったうんで、あとはDockerファイルってイメージ作るための設計図みたいなもんですねうん



  • これがすごい誰でも読めるようなテキストファイルで定義してたので非常に扱いやすかったと3つ目DockerHubの存在じゃあいざデータベースのコンテナ立ち上げたいよってなった時にやることって多分DockerRAMMySQLみたいなあれあってるよなあれか-ITのオプションは必要かとりあえず一旦



  • 起動するコマンドプラスイメージ名を指定すればいけますよねとでもこれって実はそのイメージってDocker Hubってところにホスティングされててそこから取ってきてるんですよねデフォルトだったらっていうのでそういう他のイメージっていうのを簡単に流通させることができるようになったっていうこの3つが結構Dockerは開発者の



  • 使いやすさみたいなところで革命を起こしててこれによって他のコンテナを駆逐してですね一気に広がっていったっていう背景がございますとちなみにDocker以外だったら何かあったんですか聞いたことないかもしれないやめておきますあるんだけど多分聞いたことあんまないと思うLXCとかその辺じゃないかな聞いたことないLXCですね



  • Linuxなんとかかんとかコンテナだと思うんですけどごめんちょっとフルネームわかんないけどLXCとかはDockerと対比よくされますねありがとうございますというので時代背景が合致してしかも使いやすさで革命を起こしたということでDockerはバシバシ広がっていきましたよとということでざっくりとDockerの背景的な部分を説明したんですけど



  • 最後にですね最初に紹介したレベル1レベル2でじゃあ何すればいいの何すればじゃあそれができるようになるのっていうところに突っ込んで終わりになろうかなと終わりにしようかなと思ってますはいお願いしますってことでねまず最初のレベル1既存のDocker環境を使えるというところですねで実際にじゃあこの使えるってどういうシーンで使うかっていうと多分ローカル開発で使うことが多いと思うんですよ



  • ローカル環境を動かすためにプロジェクトの既存のDocker Composeやめるみたいなやつを持ってきてそれを立ち上げてもしかしたら必要に応じてコマンドを実行するかもって感じだと思うんですけどなのでこの段階これができるようになるためには僕何すればいいかっていうと多分Docker Composeが何かっていうのが分かっていればあと他はそんなに気にしなくていいんじゃないかなと思うんですよね



  • 細かいコマンドはあるんですけどアップとダウン覚えておけば最悪動かせるドッカーコンポーズ何なのだけお話ししようかなと思うんですけどドッカーってコンテナ動かすときランコマンド使うじゃないですかドッカーランみたいな感じで結構一つのコンテナに一個のサーバーの役割を持たせることが多いんですよってなった時にアプリケーション作りますよってなってウェブサーバーがあってアプリケーション動くアップサーバーがあってデータベース動くデータベースサーバーがあって



  • あとは多分キーバリオストアとかも動いてるのかなもしかしてローカルだったらメールのキャプチャーするツールメールピットとか一般的に一番有名なの何なんだろうメールホグとか結構そういうサービスがあったりすると思うんですけどあとはS3とかの互換性のあるミニオみたいなやつ使うこともあるかなすごいスラスラ出てくるなそういう系のサービスを動かすよってなった時にじゃあ今7個上がったんですけど



  • 7回乱するのめっちゃ面倒いしそれをネットワークで通信できるようにするのも面倒じゃないですかっていう複数のコンテナを同時に扱うのがちょっとドッカー単体だときついんですよなるほどなのでそこで現れたのがドッカーコンポーズですねこのドッカーコンポーズは一個一個のコンテナの設定をさておきそういう複数のコンテナを強調動作させるのに特化したやつ昔はドッカー-コンポーズみたいな



  • コマンドだったと思うんですけど今はDockerのサブコマンドとして用意されてるのかなそうですね今だとねよく生成AIとかにコマンド任せると今でもハイフンつけて失敗することよくあるんですけど最近はハイフンなしでやることが多いかなハイフンありだと失敗するんでしょっけ新しいのだと多分失敗すると思うコマンド自体ないことがあるかな別で入れてれば動くけどね



  • というのでそういうバラバラのコンテナを一括りに扱えるよってなったのがこのDocker Composeですよと



  • そういうもんだんだって分かっておけばDocker Compose Appが今回設定されている複数のコンテナを同時に一気に立ち上げるとか落とすやつなんだってのが分かるんでレベル1のDocker使えるようになるってのはいけるんじゃないかなと思ってますやった使えるようになったそうなんですレベル2Docker環境を作れる



  • ドッカー環境を作るためにはね多分3つ要素があるかなと思ってて一つはドッカーファイルをかける一旦3つ挙げるとドッカーファイルかけるドッカーコンポジアムルかけるあと何のサーバー組み合わせたらアプリケーションが動くかが分かるこの3つだと思うんですよなんで最初は一旦とりあえずウェブサーバーと



  • アプリケーションサーバーとデータベースこの3つのコンテナを使ってコンポーズYAMLが動かせればいいんじゃないかなと思ってますなので既存の今自分が入っているプロジェクターでどっかのコンポーズYAMLがあるんだったらそのファイル読んでみてどう動いているのか見てみたりとかあとさっき挙げた3つのコンテナでシンプルに動くサーバーも動くアプリケーションを作ってみるとか



  • っていうのをやってみるのがいいんじゃないかなという感じですねDockerファイルとCompose.yamlは何でしたっけ違いがDockerファイルはイメージを作るための設計ですね要は一個一個のコンテナをどうに何インストールするのとかそういうイメージDocker Compose.yamlはそれらのコンテナを強調動作させるためのやつ



  • なるほどありがとうございますちなみに質問順平に質問なんですけどアプリケーション作る研修ってやった?エンジニア成り立ての時にやりましたその時ってDocker使った?その時使ってないですDocker使わないんだなるほどねギリ使わなかったタイミングだと思いますそんなことはない時代的には2021年の10月とかなんで僕研修やってたのが



  • 多分半年後とかぐらいには割と研修の中でも使うようにはしたみたいな話を聞いたようななるほどありがとうございます第一歩試すのってどうやってやるんだろうなっていうのを想像しながらそもそもそういう研修でやっちゃうのかなって思って聞いたんですけど今は結構やってるとこ多いですかね必須な気がする割とサーバーレス



  • ラムダとかでも本当にライトなラムダ書くとかじゃない限りは基本なんかDockerイメージ使いそうですけどねどこにデプロイするにしてもねちなみに一番最初にただ動かすだけならなんならDockerファイルいらないかもねベースイメージだけでいけるような気がするそうですねプルしてきてねベースイメージっていうのがDockerHubに上がってるやつですねDockerファイルって基本的にそのDockerの何かのイメージを元に



  • ソフトウェアインストールしたりとか設定変えたりとかファイルコピーしたりとかそういうのを変えたりするカスタマイズするみたいなイメージかなフラペチーノにチョコチップ乗せるみたいなそんな感じどっかファイルここでさっきの焼肉の話を持ってくればいいんだ最初からタレ付きのイメージがあるんでそれをどっかコンポーズヤムラで焼けばいいっていう焼くのか確かに焼いてるな大丈夫か味付けるのかもしれないですね



  • でも違うかでも味付けはドッカーファイルのイメージなんですけどドッカーコンポーズヤムルは複数の肉を同時に焼くみたいな一個の定食作るみたいなイメージ玉ねぎとか一緒にね簡単にとりあえず動かすだけっていう話に言ったら味付けなしのものを一個持ってきてやるだけでOKってことすぐできるよってことですね



  • でコンポーズを扱うにあたって僕知っておいた方がいいんじゃないかなっていうのはね3つあります設定でボリュームとポート2つでしたすごい結界早っ2つでしたでなんでこれ知っておかなきゃいけないかっていうとDockerって基本的に使い捨てって言われてて1回閉じると1回リセットされるんですよねなんで例えばデータベースとかでデータ保存してってもどっかに保存してないとコンテナ消すと消えちゃうんですようん



  • それのどっかに保存するっていう設定がボリュームみたいなあとポート80コロン80みたいな感じで書くと思うんですけどネットワークって通信するときに絶対ポート指定しなきゃいけないんですよ例えばウェブサイトとかってURL見たらhttpコロンgoogle.comみたいになってると思うんですけどあれも実は指定省略されてるだけで80番ポートがhttpsなる443かポートが指定されてるんで



  • そのポートとポートで通信してるよっていうのは知っておいた方がいいかなって感じですよねなるほどとりあえずこの2つの設定分かれば一旦動くDocker Compose YAML書けるんじゃないかなって気がしている動かすだけならボリュームいらないっちゃいらないか最低限でも押さえておいた方がいいよってことですねこの辺でちょっとより複雑なものを作っていくっていうのを自分で試行錯誤していくとこのレベル2のレベルを深掘りしていけるんじゃないかなって感じですね



  • というので今回の流れでドッカーが何で登場どういう背景でコンテナが登場してドッカーが何で勝ったのかというのと実際にそのドッカーを使えるというレベルと作れるというレベルに対して何が必要なのかというのをざーっと説明していきましたがここまででじゅんぺいくん不明点はございますか全て網羅されておりましたありがとうございますでは今日のエピソードは以上でございます完全に理解したってやつですね



  • 完全に理解しましたステップ3はいずれステップ3はね部分的にいずれかもね深掘りすればすると複雑になるんで範囲は狭くなるかなっていう一旦今日作れるまでのオーバービューって感じですねありがとうございますでは締めますかお願いしますハッシュタグひまじんプログラマーでSNSでフィードバック募集してますので本日のエピソードの感想とかありましたらお気軽にお願いします



  • えーっとはいあとはエピソードの説明欄からGoogleフォームで番組の要望・感想・質問お待ちしていますお気軽にお願いしますまたエピソードの説明欄じゃなくて番組の説明欄からスラックオンラインコミュニティひまプロ談話室の参加申し込みフォームのリンクもありますのでそちらもお願いいたしますえー待ってます各種ポッドキャストプラットフォームのフォロー高評価もお願いしますえー



  • はいお願いしますはいそれではまた次回バイバイバイ昔々3匹の小豚がいました彼らはお母さん豚にハムのECサイトを立てるように言われそれぞれ思い思いのウェブサービスを作りましたそんなところにお腹を空かせた狼が不正アクセスでハムを大量に手に入れようと1匹目の小豚のウェブサービスを攻撃しに来ましたこのウェブサービスにはセキュリティ機能がないな



  • 秘密情報も公開されてるぞぷひーリポジトリがなくなったぷー狼が2匹目のウェブサービスを攻撃しましたこっちのウェブサービスは認証があるが総当たり攻撃で認証を突破できたぞぷひゃー商品の値段が全部0円になったぷー狼が3匹目のサービスを攻撃しましたこのサービスはセキュリティがちゃんとしてるな他のサイトを渡ろう



  • 強豪が減ったおかげで儲かりすぎて笑いが止まらないわー3匹目の小豚はハムのECサイトで大成功しレンガのお家を建てることができましためでたしめでたし堅牢なウェブサービスを構築したいあなたへひまじんプログラマーの週末エンジニアリングレッスン

0:00 40:34

#394 今更ですが、Docker使えますか?必須知識であるDockerが使える状態とは?