こんにちわ。
少し前から、【webエンジニアの教科書】という書籍を使った学習をしていて、まず初めにDockerを使った開発環境の構築にとりかかりました。そこで、自分が書籍から学習したことに加えて書籍では解説されていなかった用語や細かい部分に自分なりの解釈などを加えてDockerの環境構築の最も基礎的な部分についてまとめてみたいと思います。
これを利用し、検証の難しいフレームワークやミドルウェアのアップデートなどを安全に行うことなどを可能とするもの。
また、Dockerイメージを開発チームに共有することで、各開発者のローカル環境の差に左右されずに開発を進めることが可能。
Dockerには高い移植性があり、Dockerがインストールされている環境であればローカル・サーバー上でも同じ環境を作ることが可能。これにより、「テスト環境では動いたのに本番環境で動かない」というケースを減らすことが期待できる。
この時点では「開発環境の準備が簡単になるプラットフォーム」程度に認識しておけばOK。
開発で使っている フレームワーク(例:Rails、Djangoなど)やミドルウェア(例:MySQL、Redisなど) をアップデートすると、以下のような問題が起きがち。
つまり「アップデートしたら壊れた」「元に戻したいけど戻せない」ということが起こりやすい。
Dockerコンテナは「一時的な実行環境」なので、アップデートして壊れても docker rm で簡単に削除できる。
Dockerにおけるファイル・イメージ・コンテナの関係を飲食チェーンに例えると
調理人が変わっても使用するキッチン・マニュアル・レシピ・食材が同じならどこでも同じ味が味わえるし、仮に調理に失敗しても、レシピや食材があれば新しいものをすぐに作れるというような考え方。
たとえば、次のようなケースをした場合。
「Redis 6 を使っていたが、Redis 7 にアップデートしたい。でも互換性があるか不安」
Docker を使うと、「本番環境を壊すことなく、ミドルウェアやフレームワークの新しいバージョンを気軽に試せる」ようになる。
※redis:「データを非常に高速で読み書きできるメモリ上のデータベース」
DockerはLinuxカーネルの機能をベースに開発されているため、Linuxがインストールされている環境でしか動作しない。
Windows上で内部的にLinuxディストリビューションを稼働させてWindows上でもネイティブなDockerの機能を使うことができるDocker Desktopというツールがある。
Docker Desktopには利用条件があり、開発や企業の規模によっては有料サブスクリプションが必要なことも。
DockerとはLinuxカーネルの機能が使える環境が必要。WindowsにはLinux仮想マシンを快適に使えるための仕組みが用意されており、その仕組みの名前がWSL2(Windows Subsystem for Linux 2)。
これを導入することで、DockerなどのLinuxカーネルの機能を必要とするアプリケーションがWindows上でネイティブで動かせる。
Mac OSではDocker Desktopが内部でLinux仮想マシンを自動で動かしてくれるので、特別な準備無しでDockerDesktopが実行できる。

wsl --install
wsl --install は「とりあえずUbuntu入りでWSLを始める」コマンド。
wsl --install -d ディストリ名 で「Ubuntu以外にも任意のLinuxディストリを指定してインストール」できる。
インストール後、コンピューターの再起動を要求されるので再起動。
Ubuntuが自動的に起動するので、WSL上のUbuntu環境にログインするためのユーザー名とパスワードを設定し、アカウントを作成。
ユーザー名に使える文字はアルファベット小文字、数字、アンダースコアのみ。また、先頭にハイフンは使用不可。
※ディストリビューションとはLinuxカーネル + 各種ソフト + 設定 + サポートをまとめてパッケージ化した、ひとつの「完成されたOS環境」のこと。
・ファイル操作ツール(ls, cp, rm)
・パッケージ管理(apt, yum)
・テキストエディタ(vim, nano)
・GUIやネットワークツール
・標準的な設定や構成
など、全部を組み合わせてとまとめて提供してくれるパッケージを指す。
Ubuntuは、そのLinuxディストリビューション(パッケージ)の1つの名称
※Linuxカーネルについて
Linux カーネルとは | Red Hat
Ubuntuのユーザー名とパスワードの確認方法
PowerShellを起動し以下のコマンドでディストリ名を指定してWSLを起動。
wsl -d ディストリ名
もしディストリ名が分からないときは、
wsl -l
で確認できる。
また、ディストリ名を省略して
wsl
のみでもデフォルトのディストリビューションを起動できる。
WSLが起動したら以下のコマンドを実行。
whoami
出力された文字列が現在ログインしているユーザー名
Ubuntuのターミナルで以下を実行。
passwd
その後、以下の内容を入力
Current password:(今のパスワード)
New password:(新しいパスワード)
Retype new password:(もう一度)
入力後、password updated successfully と出れば成功。
wslを起動を起動中であればlogoutコマンドなどでいったんログアウトし、以下を実行してrootとしてwslを起動。
wsl -d ディストリ名 -u root
ディストリ名の部分は、自分の環境のディストリ名に置き換える。
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定値)
docker-desktop
このように出力されたらUbuntuがLinuxディストリビューション名
rootとしてログインしたらUbuntuのターミナルで以下を実行。
passwd ユーザー名
あたらしいパスワードを2回入力すれば再設定完了。
ついでに現在のアカウントがsudoコマンドが実行できるか(管理者権限を持っているか)を確認。
buntuのターミナルで以下を実行。
groupsusername sudo dockern
のようにsudoという文字列が含まれていればそのユーザーはsudo権限あり。
もし権限がなければPowerShellを起動し、 以下を実行。
wsl -d ディストリ名 -u root
rootでログインしたらUbuntuのターミナルで以下を実行。
usermod -aG sudo ユーザー名
PowerShellで以下を実行。
wsl --shutdown
wsl -d ディストリ名
再度Ubuntuのターミナルで以下を実行。
groupsusername sudo dockern
というようにsudoという文字列を含む結果が出力されればユーザーへのsudo権限の付与は成功。
PowerShellを終了すればrootでのログイン状態が解除される。
WSL2の実行環境が整ったらDocker Desktopのインストール
公式サイトからインストーラをダウンロード
windows:
https://docs.docker.com/desktop/setup/install/windows-install/
Mac:
https://docs.docker.jp/desktop/install/mac-install.html
インストール時の設定で「Use WSL 2 instead of Hyper-V(recommended)」がONになっていることを確認。(項目がなければスルーでOK)
インストール後はWindowsを再起動し、Docker Desktopが自動で起動されればインストール成功。
ここまでで一番基礎的なDockerのインストールやユーザー設定は完了です。
機会があれば、実際にDockerの操作方法などの記事も書ければと思います。
株式会社SAKURUGのAdvent Calendar 2025です。
会社HP: https://sakurug.co.jp
ーーーーーーーーーー
株式会社SAKURUGは「寄付月間2025」に参画しています。
12月中のテックブログのpv数に応じて、アフリカの支援団体に寄付をおこないます。
https://giving12.jp/
ーーーーーーーーーー
カジュアル面談では、会社の雰囲気や仕事内容についてざっくばらんにお話ししています。
履歴書は不要、服装自由、原則オンラインです。興味を持っていただけた方は、
ぜひ以下からお申し込みください。
皆さんにお会いできることをサクラグメンバー一同、心より楽しみにしております!
カジュアル面談応募フォーム