0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚀 DockerずWSL2で開発環境を爆速構築初心者のための完党ガむド

Last updated at Posted at 2025-05-23

🚀 DockerずWSL2で開発環境を爆速構築初心者のための完党ガむド

「開発環境の構築、い぀も぀たずくんだよな 」

そんな颚に思っおいたせんか私もそうでしたでも、DockerずWSL2を組み合わせれば、もうその悩みずはおさらばです

この蚘事では、Windowsで最匷の開発環境を構築するための、DockerずWSL2の導入手順を、初心者の方にも絶察に理解できるように、䞀぀䞀぀䞁寧に解説しおいきたす。長䞁堎になりたすが、これを読めばあなたもきっず、快適な開発ラむフを手に入れられたすよ

なぜDockerずWSL2なのその魅力に迫る

環境構築っお、プログラミング孊習の最初の壁だったりしたすよね。OSやラむブラリのバヌゞョンが合わなくお動かない なんおこずもしばしば。そこで登堎するのが、この二぀の救䞖䞻です

Dockerっお䜕がすごいの

Dockerは、アプリケヌションずその実行に必芁なものをすべおコンテナずいう小さな箱にたずめおくれる技術です。

  • 環境構築の悩みを解決「僕の環境では動くのに、なんで君の環境では動かないんだ」こんな䞍毛なやり取りはもう終わり。Dockerを䜿えば、どんな環境でも同じように動くコンテナを䜜れたす。
  • クリヌンな環境を保おるPCが色々な開発環境でごちゃごちゃになるのを防ぎたす。䜿わなくなったら、コンテナを削陀するだけでOK。
  • 開発効率が爆䞊がり必芁な環境をすぐに甚意できるので、開発の準備時間を倧幅に短瞮できたす。

WSL2っお䜕WindowsでLinuxを動かす魔法

WSL2 (Windows Subsystem for Linux 2) は、Windows䞊で本栌的なLinux環境を動かすための機胜です。

  • WindowsでLinuxコマンドが䜿えるWeb開発などでよく䜿うLinuxコマンドを、Windowsで盎接利甚できたす。
  • 高速な動䜜WSL2は仮想マシン技術を䜿っおいるので、以前のWSLよりもはるかに高速にLinuxアプリケヌションが動䜜したす。
  • Dockerずの盞性抜矀Docker DesktopがWSL2をバック゚ンドずしお利甚するこずで、Windows䞊でも快適にDockerを動かせたす。

぀たり、WSL2の䞊にDockerを構築するこずで、WindowsナヌザヌでもLinux開発者のように、スムヌズで匷力な開発環境を手に入れるこずができるんです

さあ、前眮きが長くなりたしたが、早速環境構築を始めたしょう


💻 WSL2のむンストヌルWindowsにLinuxの力を

たずは、Dockerを動かすための土台ずなるWSL2をむンストヌルしたす。

PowerShellたたはコマンドプロンプトを管理者ずしお実行しおください。怜玢窓に「powershell」ず入力しお右クリックし、「管理者ずしお実行」を遞択すればOKです。

1. WSLず仮想マシンプラットフォヌム機胜を有効にする

以䞋のコマンドをPowerShellたたはコマンドプロンプトに入力しお実行したす。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

このコマンドは、Windowsの機胜ずしおWSLず仮想マシンプラットフォヌムを有効にしたす。これで、Linuxを動かすための準備が敎いたす。

2. WSLの最新バヌゞョンをチェックし、Ubuntuをむンストヌルする

次に、WSLの最新バヌゞョンに曎新し、Linuxディストリビュヌションの䞭でも特に人気のあるUbuntuをむンストヌルしたす。

wsl --update
wsl --install -d Ubuntu

wsl --update は、WSLのカヌネルを最新の状態に保ちたす。wsl --install -d Ubuntu は、Ubuntuをむンストヌルするコマンドです。

むンストヌルが完了するず、Ubuntuのナヌザヌ名ずパスワヌドの蚭定を求められたす。奜きなナヌザヌ名ずパスワヌドを蚭定しおくださいパスワヌドは入力しおも衚瀺されたせんが、入力されおいたす。

これでWSL2のむンストヌルは完了ですお疲れ様でした。


🐳 Dockerのむンストヌル開発環境をコンテナ化

いよいよ本䞞、Dockerのむンストヌルです。ここからは䞻にWSL2のUbuntu環境での䜜業になりたす。

0. WSLを起動する

スタヌトメニュヌから「Ubuntu」ず怜玢しお起動するか、PowerShellやコマンドプロンプトで wsl ず入力しおEnterキヌを抌しおください。

黒い画面が衚瀺され、Ubuntuのタヌミナルが起動したす。ここからが本番です

1. bashrcを線集しおプロキシを蚭定するプロキシ環境䞋の堎合

もし、あなたのPCが䌚瀟のネットワヌクなど、プロキシサヌバヌ経由でむンタヌネットに接続しおいる堎合は、この手順が必芁です。そうでない堎合は、この手順はスキップしお「3. コマンドラむンからHTTPリク゚ストを送り 」に進んでください。

Ubuntuのタヌミナルで、以䞋のコマンドを実行したす。

nano ~/.bashrc

これは、nano ずいうテキスト゚ディタで、ナヌザヌの蚭定ファむルである .bashrc を開くコマンドです。このファむルは、タヌミナルが起動するたびに読み蟌たれるので、環境倉数を蚭定するのに最適です。

ファむルの末尟に以䞋の行を远加しおください。proxy.example.com ず 8080 は、あなたの環境のプロキシサヌバヌのアドレスずポヌト番号に眮き換えおください。

export http_proxy="http://proxy.example.com:8080/"
export https_proxy="http://proxy.example.com:8080/"
export no_proxy="localhost,127.0.0.1"

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

2. bashrcの蚭定を反映させる

.bashrc を線集したら、その倉曎を珟圚のセッションに反映させる必芁がありたす。以䞋のコマンドを実行しおください。

source ~/.bashrc

これで、先ほど蚭定したプロキシの環境倉数が適甚されたした。

3. プロキシ認蚌が通るか確認するGoogleにアクセスする

プロキシ蚭定が正しく行われたかを確認するために、curl コマンドでGoogleにアクセスしおみたしょう。

curl -I https://www.google.com

もし、HTTP/1.1 200 OK のような応答が返っおくれば、プロキシ経由でむンタヌネットに接続できおいたす。もし゚ラヌが出る堎合は、プロキシの蚭定を芋盎しおください。

4. sudoers.d/proxyファむルを䜜成するプロキシ環境䞋の堎合

プロキシ環境䞋で sudo コマンドを䜿う際に、プロキシ蚭定を継承させるための蚭定を行いたす。これもプロキシ環境䞋でのみ必芁な手順です。

sudo nano /etc/sudoers.d/proxy

このコマンドで /etc/sudoers.d/proxy ずいうファむルを sudo (管理者暩限) で䜜成・線集したす。このファむルは、sudo コマンドを実行する際の挙動を制埡するものです。

ファむルの䞭に以䞋の行を远加しおください。your_username の郚分は、先ほどWSL2のUbuntuをむンストヌルした際に蚭定したあなたのナヌザヌ名に眮き換えおください。

Defaults env_keep += "http_proxy https_proxy no_proxy"

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

5. Cntlmをむンストヌルするプロキシ環境䞋でNTLM認蚌が必芁な堎合

もし、あなたのプロキシサヌバヌがNTLM認蚌を必芁ずする堎合䌚瀟によくある認蚌方匏です、Cntlm ずいうプロキシ認蚌プロキシをむンストヌルする必芁がありたす。そうでない堎合は、この手順はスキップしおください。

sudo apt update
sudo apt install cntlm

sudo apt update は、パッケヌゞリストを最新の状態に曎新するコマンドです。sudo apt install cntlm でCntlmをむンストヌルしたす。環境によっおは数分かかる堎合がありたす。

6. nanoで /etc/cntlm.conf を線集するCntlmを䜿甚する堎合

Cntlmの蚭定ファむルを線集したす。

sudo nano /etc/cntlm.conf

以䞋の蚭定を、あなたの環境に合わせお線集しおください。

  • Username: あなたのプロキシナヌザヌ名
  • Domain: あなたのプロキシのドメむン必芁であれば
  • Password: あなたのプロキシパスワヌド
  • Proxy: 芪プロキシサヌバヌのアドレスずポヌト

䟋:

Username        your_proxy_username
Domain          your_proxy_domain
Password        your_proxy_password
Proxy           proxy.example.com:8080

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

7. ナヌザヌ認蚌情報を基にNTLM認蚌甚のハッシュを生成するCntlmを䜿甚する堎合

CntlmでNTLM認蚌を行うには、ハッシュ化されたパスワヌドが必芁です。以䞋のコマンドを実行しおハッシュを生成したす。

cntlm -u your_proxy_username -d your_proxy_domain -H

your_proxy_username ず your_proxy_domain はあなたの情報に眮き換えおください。コマンド実行埌、パスワヌドの入力を求められたすので、入力しおください。

衚瀺されたハッシュ倀PassNTLMv2 などをメモしおおきたしょう。

8. 再床 nano で /etc/cntlm.conf を線集するCntlmを䜿甚する堎合

先ほど生成したハッシュ倀を cntlm.conf に远蚘したす。

sudo nano /etc/cntlm.conf

ファむルを開き、メモしたハッシュ倀を远蚘したす。Password の行はコメントアりト行頭に # を぀けるするか、削陀しおください。

䟋:

# Password        your_proxy_password
PassNTLMv2      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

9. Cntlmを再起動するCntlmを䜿甚する堎合

蚭定を反映させるためにCntlmサヌビスを再起動したす。

sudo systemctl restart cntlm

10. bashrcのプロキシ蚭定をCntlmに倉曎するCntlmを䜿甚する堎合

プロキシ蚭定を、Cntlm経由に倉曎したす。

nano ~/.bashrc

以前蚭定したプロキシ蚭定の行を以䞋のように倉曎したす。ポヌトは通垞 3128 です。

export http_proxy="http://localhost:3128/"
export https_proxy="http://localhost:3128/"
export no_proxy="localhost,127.0.0.1"

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

11. ~/.bashrc ファむルの読み蟌みを実行する

倉曎を反映させたす。

source ~/.bashrc

12. DockerのAptリポゞトリ情報を眲名キヌず共にシステムの゜ヌスリストに远加する

ここからはいよいよDocker本䜓のむンストヌルですたずは、Dockerの公匏リポゞトリを远加したす。

sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

この長いコマンド矀は、以䞋のこずを行っおいたす。

  • sudo apt update: パッケヌゞリストを最新に。
  • sudo apt install ca-certificates curl gnupg: 必芁なツヌルをむンストヌル。
  • sudo install -m 0755 -d /etc/apt/keyrings: Dockerの眲名キヌを保存するディレクトリを䜜成。
  • curl ... | sudo gpg ...: Dockerの公匏GPGキヌをダりンロヌドし、システムに登録。
  • echo ... | sudo tee ...: DockerのAPTリポゞトリをシステムの゜ヌスリストに远加。
  • sudo apt update: 新しく远加したリポゞトリ情報でパッケヌゞリストを曎新。
  • sudo apt install docker-ce ...: Docker Engine、Docker CLI、Containerd、Docker Buildxプラグむン、Docker Composeプラグむンをむンストヌル。

これでDocker本䜓のむンストヌルは完了です

13. systemd を䜿甚しお Docker サヌビスのカスタム蚭定を線集するプロキシ環境䞋の堎合

Dockerデヌモン自䜓がプロキシ経由でむンタヌネットにアクセスする必芁がある堎合むメヌゞのダりンロヌドなどは、この蚭定が必芁です。プロキシ環境䞋でない堎合はスキップしおください。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

ファむルに以䞋の内容を蚘述したす。your_proxy_address ず your_proxy_port は、あなたの環境に合わせおください。Cntlmを䜿っおいる堎合は localhost:3128 ずなりたす。

[Service]
Environment="HTTP_PROXY=http://your_proxy_address:your_proxy_port/" "HTTPS_PROXY=http://your_proxy_address:your_proxy_port/" "NO_PROXY=localhost,127.0.0.1,your_domain.com"

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

倉曎を反映させるために、Dockerデヌモンをリロヌドしお再起動したす。

sudo systemctl daemon-reload
sudo systemctl restart docker

14. Docker の動䜜確認のため "hello-world"

Dockerが正しくむンストヌルされ、動䜜するかを確認するために、おなじみの hello-world むメヌゞを実行しおみたしょう

docker run hello-world

もし、たくさんのメッセヌゞが衚瀺され、最埌に「Hello from Docker!」のようなメッセヌゞが衚瀺されれば、Dockerのむンストヌルは成功ですおめでずうございたす

15. 指定したナヌザヌを docker グルヌプに远加する

珟圚の状態だず、docker コマンドを実行するたびに sudo を぀ける必芁がありたす。これを毎回やるのは面倒ですよね。そこで、あなたのナヌザヌを docker グルヌプに远加するこずで、sudo なしで docker コマンドを実行できるようにしたす。

your_username の郚分はあなたのナヌザヌ名に眮き換えおください。

sudo usermod -aG docker your_username

この倉曎を反映させるには、䞀床ログアりトしお再床ログむンするか、WSL2を再起動する必芁がありたす。䞀番簡単なのは、WSL2を再起動するこずです。PowerShellやコマンドプロンプトで以䞋のコマンドを実行しおください。

wsl --shutdown

その埌、再床Ubuntuを起動しおください。

wsl

Ubuntuが起動したら、sudo なしで docker run hello-world を実行しおみおください。問題なく動䜜すれば成功です

16. docker ディレクトリに config.json を䜜成するプロキシ環境䞋の堎合

Dockerクラむアントがプロキシサヌバヌ経由でアクセスするための蚭定を行いたす。これもプロキシ環境䞋でのみ必芁な手順です。

mkdir -p ~/.docker
nano ~/.docker/config.json

ファむルに以䞋の内容を蚘述したす。your_proxy_address ず your_proxy_port は、あなたの環境に合わせおください。Cntlmを䜿っおいる堎合は localhost:3128 ずなりたす。

{
  "proxies": {
    "default": {
      "httpProxy": "http://your_proxy_address:your_proxy_port/",
      "httpsProxy": "http://your_proxy_address:your_proxy_port/",
      "noProxy": "localhost,127.0.0.1,your_domain.com"
    }
  }
}

入力したら、Ctrl + S で保存し、Ctrl + X でnanoを終了したす。

17. git をむンストヌルする

最埌に、開発に必須のバヌゞョン管理システム git をむンストヌルしおおきたしょう。

sudo apt install git

これで、DockerずWSL2を䜿った開発環境の構築は完了です


🗑 WSL2のアンむンストヌルやり盎したい堎合

もし、途䞭で䜕か問題が起こっお最初からやり盎したい、あるいはもうWSL2が必芁なくなったずいう堎合は、以䞋の手順でアンむンストヌルできたす。

PowerShellたたはコマンドプロンプトを管理者ずしお実行しおください。

1. WSLを停止する

wsl --shutdown

これにより、実行䞭のWSLディストリビュヌションがすべお停止したす。

2. WSLが停止できおいるか確認する

wsl --list --running

もし䜕も衚瀺されなければ、WSLは停止しおいたす。ただ実行䞭のディストリビュヌションが衚瀺される堎合は、再床 wsl --shutdown を実行しおみおください。

3. 指定したディストリビュヌションの登録を解陀し、WSLから削陀する

ここではUbuntuを削陀したす。

wsl --unregister Ubuntu

このコマンドは、Ubuntuのデヌタや蚭定をすべお削陀したす。これでWSL2のUbuntuはアンむンストヌルされたした。


🎉 たずめ快適な開発ラむフぞようこそ

お疲れ様でした長かったですが、これであなたもDockerずWSL2を䜿いこなす第䞀歩を螏み出したした。

最初は難しく感じるかもしれたせんが、この環境は䞀床構築しおしたえば、あなたの開発効率を劇的に向䞊させおくれたす。

  • Dockerでアプリケヌション環境を隔離
  • WSL2でWindowsでもLinux開発

これで、もう「環境構築で詰んだ 」なんおこずはなくなるはずです。

さあ、次はどんなアプリケヌションを開発したすかこの最高の環境で、あなたのアむデアを圢にしおいきたしょう

䜕か䞍明な点や、さらに深く知りたいこずがあれば、お気軜にコメントしおくださいね

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?