スキップしてメイン コンテンツに移動

投稿

注目の投稿

【Day 10】ローカルでの作業取り消し(restore / reset基本)

最近の投稿

【Day 12】コンテナの状態確認とライフサイクル(ps, stop, start, rm)

▲ Day 12: コンテナの状態確認とライフサイクル(ps, stop, start, rm を完全制覇) 🐳 皆さん、こんにちは! Docker/コンテナ実践講座の専任講師です。 前回(Day 11)は、たった1行の docker run コマンドでNginxや.NETコンテナが爆速起動する感動を味わっていただきました。 しかし、長年Hyper-VマネージャーやVMware vSphere、あるいはWindowsの「サービス管理ツール(services.msc)」でサーバーを管理してきたベテランの皆様なら、当然こう疑問に思うはずです。 「いま動いているコンテナはどう一覧確認するのか?」「停止と削除は何が違うのか?」「安全に終了させないとデータが壊れたりしないのか?」 本日は、コンテナ運用で最も頻繁に叩く4大基本コマンド ps , stop , start , rm を通じて、コンテナの「完全なライフサイクル(生成・稼働・停止・破棄)」と現場のプロの整理術を徹底解説します! ① 導入・本日の達成目標 仮想マシンの世界では「OSをシャットダウンしても、仮想マシン定義や仮想HDD(VHDX)は管理画面に残り続ける」のが当たり前でした。 一方、Dockerコンテナは「軽量なプロセス」であると同時に「ファイルシステムの変更差分」を保持する実体でもあります。 「停止したはずのコンテナがディスクを圧迫していた」「コンテナ名が重複して新しいアプリが起動できない」といった現場トラブルの9割は、この 「ライフサイクルと状態管理の基本」 を押さえていないことが原因です。 本日の講義を終える頃には、以下の3つの目標を完全にクリアできるようになります。 docker ps と docker ps -a の違い...

【Day 11】最初のコンテナ起動(docker run hello-world から nginx まで)

▲ Day 11: 最初のコンテナ起動(docker run hello-world から nginx・.NETまで) 🐳 皆さん、こんにちは! Docker/コンテナ実践講座の専任講師です。 第1部・第2部を通じて、Dockerの概念理解と開発環境(WSL2、VS Code、Git)の準備を完璧に整えた皆様、いよいよ本日から 【第3部:Docker基本コマンドとコンテナ操作】 の実践ステージに突入します! 物理サーバーのセットアップやVMware/Hyper-VでのOSインストール、あるいはWindows Serverの「役割と機能の追加」からIISを導入してWebサーバーを立ち上げる作業には、これまで数十分〜数時間がかかっていました。しかしDockerなら、 たった1行のコマンドを叩くだけで、わずか数秒後に世界最高速のWebサーバー(Nginx)が手元で稼働を始めます。 本日は、コンテナライフの第一歩である docker run の内部メカニズム、通信の要である「ポートマッピング」、そしてMicrosoft公式の.NETコンテナの起動までを一気通貫で体得しましょう! ① 導入・本日の達成目標 「黒い画面(CLI)で docker run と打てば動くのは知っているけれど、裏側で一体何が起きているのか?」 「なぜブラウザからアクセスするために -p 8080:80 という謎の数字を書かなければいけないのか?」 仕組みをブラックボックスにしたままコマンドを丸暗記してしまうと、ポートの競合やバックグラウンドプロセスの停止など、現場のトラブルに直面した際に立ち往生してしまいます。 本日の講義を終える頃には、以下の3つの目標を完全にクリアできるようになります。 docker run が裏側で実行する3ステップ(ローカル確認 ➡ 自動p...

【Day 10】Git for WindowsとDockerの共存(改行コードCRLF問題とパーミッション)

▲ Day 10: Git for WindowsとDockerの共存 / 改行コードCRLF問題とパーミッション完全対策 🐳 皆さん、こんにちは! Docker/コンテナ実践講座の専任講師です。 Windows上で長年Visual StudioやC#を使い倒し、堅牢なエンタープライズシステムを構築してきたベテランの皆様、心より歓迎いたします! Windows開発者がDockerコンテナ(Linux世界)へ踏み出したとき、 「ほぼ100%の確率で最初に遭遇し、半日〜数日を溶かす最大の落とし穴」 が存在します。それが 「改行コード(CRLF / LF)問題」 と 「ファイル実行権限(パーミッション)」 の壁です。 「ファイルは間違いなく存在するのに、なぜか ./entrypoint.sh: not found と言われてコンテナが起動しない……」という不可解な現象を、本日はGitの仕組みと合わせて根本から完全撲滅しましょう! ① 導入・本日の達成目標 WindowsとLinuxは、根本的なファイルシステムの思想や改行の表現方式が異なります。 従来のように「Windowsマシンだけで完結するC#開発」を行っている間は、この違いを意識する必要はほとんどありませんでした。 しかし、 「WindowsでソースコードやDockerfileを編集し、Linuxコンテナ内で実行する」 というハイブリッド環境においては、不可視の1文字や1ビットの差異が致命的な停止障害を引き起こします。 本日の講義を終える頃には、以下の3つの目標を完全にクリアできるようになります。 CRLFとLFのバイナリ差異 を理解し、Linuxコンテナでスクリプトが落ちる根本原因(シバンの誤認識)を完全特定できる。 個人のPC設定( core.autocrlf )に...

【Day 09】VS Code + Docker拡張機能 + WSL2ターミナル連携

▲ Day 09: VS Code + Docker + WSL2連携 / 軽量エディタとLinux統合環境で爆速コンテナ開発 🐳 皆さん、こんにちは! Docker/コンテナ実践講座の専任講師です。 前回のDay 08では、Visual Studio 2022の強力なコンテナツールと「F5キー一発デバッグ」の全貌をマスターしました。 大規模なエンタープライズソリューションではVisual Studioが絶対的な強さを誇りますが、現代のWeb API開発やマイクロサービス、設定ファイルの微修正などでは、 「世界中で最も使われている軽量エディタ VS Code」 の軽快さが圧倒的な威力を発揮します。 本日は、 「VS Code + 公式Docker拡張機能 + WSL2ターミナル連携」 を組み合わせ、重厚なGUIツールから完全に脱却して1画面で爆速開発を実現する極意を徹底解説します! ① 導入・本日の達成目標 「Dockerの操作はコマンドラインが基本」と頭では分かっていても、実行中のコンテナ一覧やログの流し読み、コンテナ内部のファイル確認などをすべて黒い画面(CLI)だけで行うのは、慣れるまで大きな負担です。 かといって、巨大な専用GUIツールを別に立ち上げると、エディタとの画面切り替えに時間を取られ、PCのメモリも圧迫されます。 そこで登場するのが 「VS Code(Visual Studio Code)」 です。VS Codeに公式のDocker拡張機能とWSL拡張機能を組み合わせれば、 エディタの画面内に「GUIの直感性」と「Linuxの爆速コマンド環境」が美しく同居 します。 本日の講義を終える頃には、以下の3つの目標を完全にクリアできるようになります。 重厚GUIツールとVS Code+WSL2の決定的違い ...

【Day 09】コミット履歴の閲覧と一意な識別子(log)

👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 ITエンジニア歴30年以上の皆さん、Subversion (SVN) ではコミットするたびに「リビジョン 101, 102, 103...」と綺麗な連番が増えていくのが当たり前でしたよね。 Gitを初めて触ったとき、 「e4f1a23b9... なんて40文字の暗号文字列、一体誰が覚えるんだ!?」 と強烈な拒否感を覚えた方も多いのではないでしょうか。 本日は第9回として、 「なぜGitは連番ではなくハッシュなのか?」 という根本理由を解き明かし、膨大なコミット履歴から目的の変更を瞬時に見つけ出す実践的なログ閲覧術を伝授します! ① 導入・本日の達成目標 長年VSSやSVNを使ってきたエンジニアにとって、リビジョン番号(r101など)は「プロジェクトの進行度」を示す直感的な目印でした。 しかしGitの世界では、コミットの識別子はすべて 「40文字の16進数ハッシュ値」 で管理されます。 本日の講義でマスターするゴールは以下の3つです! なぜ分散環境では連番リビジョンが破綻するのか 、コミットハッシュ(SHA-1/256)の必然性を理解する。 git log --oneline --graph で歴史の分岐と合流を瞬時に読み解く。 TortoiseGitのログダイアログ と 4大AIエージェント を駆使して、過去のC#変更履歴を自在に検索・分析する。 ② 【根本理解】SVNリビジョン番号 vs Gitコミットハッシュの決定的違い SVNの「リビジョン番号」とGitの「コミットハッシュ」には、単なる表記の違いを超えた 思想とアーキテクチャの根本的な違い があります。 ...