Go言語

Docker Desktop と VS Code で Go 開発環境を構築する方法 (2026年版)

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


Contents

スポンサードリンク

Docker Desktop のインストールと OS 別注意点

Docker Desktop は公式サイトから最新版を取得し、各 OS が満たすべき前提条件(CPU 仮想化支援やファイルシステム権限など)さえクリアすれば、インストーラを実行するだけで利用開始できます。以下では Windows・macOS・Linux の 3 種類に分けて、ダウンロード先の最新ページへのリンクと、インストール時に留意すべきポイントを解説します。

ダウンロードページは常に公式トップからたどる

直接バイナリ(例: Docker Desktop Installer.exe)への URL は将来的に変更されやすく、古いリンクが 404 になるリスクがあります。安全かつ最新のパッケージを取得するために 必ず 次の公式ページから OS を選択してください。

このページでは「Download for Windows」「Download for macOS(Intel / Apple Silicon)」「Download for Linux」それぞれに対応したボタンが用意されています。リンク先は常に最新ビルドへリダイレクトされるため、手動でバージョンを追う必要がなくなります。

Windows

Windows 版 Docker Desktop は Hyper‑V と WSL2 の二つのバックエンドをサポートしますが、2026 年時点では WSL2 が推奨 されています。以下の手順でインストールと設定を行いましょう。

  1. BIOS/UEFI 設定
  2. Intel CPU の場合は VT-x、AMD CPU の場合は AMD‑V を有効化。
  3. WSL2 の有効化(PowerShell 管理者権限)

powershell
wsl --install
wsl --set-default-version 2

  1. Docker Desktop ダウンロード & インストール
  2. 公式ページの「Download for Windows」ボタンから取得した .exe を実行。
  3. インストール後の確認

powershell
docker version

正常にバージョン情報が表示されれば完了です。

ポイント:Windows 10 バージョン 2004(2020 年 5 月リリース)以降、または Windows 11 が必須です。古い OS では WSL2 が利用できないため、Hyper‑V にフォールバックしますがパフォーマンスが劣ります。

macOS

macOS 向け Docker Desktop は Apple Silicon (ARM)Intel の二つのアーキテクチャを別々に提供しています。公式ダウンロードページでは「Mac with Apple chip」または「Mac with Intel chip」を選択でき、対応する dmg が自動的に取得されます。

  1. システム要件
  2. macOS Ventura 12.0 以降(Apple Silicon は Ventura、Intel は Monterey 推奨)。
  3. インストール手順
  4. ダウンロードした .dmg を開き、アプリケーションフォルダへドラッグ。
  5. 権限設定(初回起動時)

「システム環境設定」→「セキュリティとプライバシー」→「フルディスクアクセス」で Docker Desktop にチェックを入れます。

  1. 動作確認

bash
docker version

ポイント:Apple Silicon 用は arm64 アーキテクチャのイメージがデフォルトで使用され、Intel 用は amd64 が使用されます。マルチプラットフォームビルドを行う際は --platform=linux/amd64,linux/arm64 などで明示してください。

Linux(Ubuntu/Debian 系を中心に)

Linux 向け Docker Desktop は .deb または .rpm パッケージとして提供されますが、APT / DNF リポジトリから直接インストールできるわけではありません。以下は Ubuntu 22.04(Debian 系)と Fedora(RPM 系)の代表的な手順です。

共通前提:cgroup v2 の有効化

Docker Desktop は cgroup v2 が必須です。カーネルが対応していない場合はアップグレードまたはブートオプションで有効にします。

Ubuntu/Debian 系

  1. Docker Engine(docker-ce)を公式リポジトリからインストール(Docker Desktop が依存する Docker デーモンです)

bash
sudo apt-get update
sudo apt-get install \
ca-certificates curl gnupg lsb-release

# Docker の GPG 鍵追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

  1. Docker Desktop の .deb パッケージを取得
  2. 公式ページの「Download for Linux」から docker-desktop-*.deb をダウンロード。

  3. インストール

bash
sudo apt-get install ./docker-desktop-*-amd64.deb

  1. 起動と自動開始設定

bash
systemctl enable --now docker-desktop

  1. 確認

bash
docker version

Fedora / RHEL 系

  1. Docker Engine のインストール(公式リポジトリ)

bash
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager \
--add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io

  1. Docker Desktop の .rpm パッケージ取得(公式ページからダウンロード)
  2. インストール

bash
sudo rpm -i docker-desktop-*.rpm
sudo systemctl enable --now docker-desktop

注意点:Linux ディストリビューションやカーネルバージョンによっては Docker Desktop の最新リリースがサポート外になる場合があります。その際は Docker Engine + VS Code Remote‑Containers だけで代替可能です(本稿の後半で説明)。


VS Code Remote‑Containers 拡張機能の設定

VS Code の Remote‑Containers 拡張機能を使うと、ローカルに Go コンパイラやツールチェインをインストールせずとも、コンテナ内部が完全な開発環境として立ち上がります。ここでは 拡張機能の導入devcontainer.json の作成コンテナ起動 までの流れを具体的に示します。

拡張機能インストール

  1. VS Code の左サイドバー「Extensions」 (Ctrl+Shift+X) を開く。
  2. 検索ボックスに Remote - Containers と入力し、Microsoft が提供する拡張機能(2026 年 3 月時点でバージョン 0.357 が最新)をインストール。

ポイント:拡張機能は自動的に Docker Desktop の API を利用します。Docker Desktop が起動していないと「Docker デーモンが見つかりません」というエラーになるので、事前に docker version が成功することを確認してください。

devcontainer.json のベストプラクティス

以下は 公式 Go 1.22 ベースイメージ を利用し、Docker‑outside‑of‑Docker(DoD)機能の最新版を自動取得する例です。バージョン番号を固定せずに latest タグで参照することで、将来的な更新に追従できます。

設定項目の解説

項目 意味
image Microsoft が公式に保守する Go 開発用ベースイメージ。タグ 1.22 は「Go 1.22 系列」の最新ビルドを指す。
features.docker-outside-of-docker コンテナ内からホストの Docker デーモンへアクセスできるようにする機能。バージョン指定なしで latest が自動取得され、将来のリリースにも追従可能。
customizations.vscode.extensions 開発時に必須な拡張機能をコンテナ起動と同時にインストール。
postCreateCommand コンテナ作成直後に実行されるコマンドで、依存関係の解決やコード生成に利用できる。
settings VS Code のユーザー設定をワークスペース単位で上書きし、Go 言語サーバーやフォーマッタを有効化する。

ポイントdevcontainer.json はリポジトリにコミットして共有すれば、チーム全員が同一環境で作業できます。また image のタグは「メジャーバージョン」だけに留めることで、パッチリリースの自動取得が可能です。

コンテナ起動手順

  1. プロジェクトのルートディレクトリ(.devcontainer/ がある場所)で VS Code を開く。
  2. コマンドパレット Ctrl+Shift+PRemote-Containers: Reopen in Container を選択。
  3. Docker が自動的にイメージをプルし、数十秒でコンテナが起動します。ターミナルが表示されたら go version で Go のバージョンが確認できるはずです。

dvc-go-gemini テンプレート取得・カスタマイズ手順

「dvc‑go‑gemini」テンプレートは、2025 年 10 月に Zenn に掲載された公式サンプルリポジトリです。以下の手順でクローンし、先ほど作成した devcontainer.json と Dockerfile を最新環境向けに差し替えるだけで、すぐにハンズオンを開始できます。

手順概要

  1. GitHub リポジトリをクローン
  2. .devcontainer/devcontainer.json.devcontainer/Dockerfile のベースイメージを更新
  3. 必要に応じて拡張機能や VS Code 設定を追加

実際のコマンド

ディレクトリ構成(変更後)

ポイント:ベースイメージだけ差し替えると、既存のビルドキャッシュがそのまま流用されるため、再構築時間は数秒に短縮できます。


サンプルプロジェクト構造とコード例(インポート文修正)

このセクションでは goapp001 ディレクトリの典型的な Go プロジェクト構成を示し、実際にコンテナ内でビルド・実行できる最小限の HTTP サーバーコードをご紹介します。インポート文は単一ブロックにまとめており、コンパイルエラーは発生しません。

ディレクトリ構成(標準的なレイヤード設計)

go.mod(Go 1.22 を使用)

cmd/server/main.go(エントリーポイント)

ポイントinternal/ ディレクトリは外部からインポートできない設計となっており、ライブラリとして再利用したいコードは pkg/ に配置します。この構造は大規模プロジェクトでもスケーラビリティが保たれます。

コンテナ内での実行確認

ブラウザで http://localhost:8080/hello にアクセスし、以下の文字列が表示されれば成功です。


マルチステージ Dockerfile とデバッグ用ランタイムの考慮点

マルチステージビルドは 開発時に必要なツールチェインgo, git 等)と、本番運用時に最小限だけ残すイメージ を分離できるため、セキュリティ・サイズともに有利です。ただしデバッグ目的で Delve を利用する場合は、ランタイムステージの選択が重要になります。

推奨マルチステージ構成(Go 1.22 + Distroless)

デバッグ時の注意点

  • Distroless イメージはシェルやデバッガが同梱されていません。Delve を使いたい場合は、別途 debug ステージを用意し、dlv バイナリと必要な共有ライブラリをコピーします。
  • 代替案として、開発・デバッグ専用には golang:1.22-alpine をそのままランタイムに使うか、debian:sid-slim 等の最小サイズイメージに切り替えても問題ありません。

デバッグ用ステージ例(Distroless の代わりに Alpine)

ポイントdebug ステージは本番イメージに混入させないよう、docker build --target runtime でリリースビルドを行うか、CI パイプラインで明示的にステージを切り替えてください。


ローカルビルド・コンテナ起動コマンド

Dockerfile がプロジェクトのルートにある前提で、以下の手順で ローカルイメージのビルドコンテナ実行 を行います。.dockerignore に不要ファイル(例: test/, *.md, .git/)を列挙しておくと、ビルドキャッシュが小さくなります。

Delve デバッグ用に実行する場合

ポイント--rm を付けずにバックグラウンド実行すると、VS Code のデバッガが接続しやすくなります。作業完了後は docker stop goapp-debug && docker rm goapp-debug でクリーンアップしてください。


VS Code から Delve デバッグを行う手順

Delve(Go 用デバッガ)を ヘッドレスモード で起動し、VS Code の launch.json にリモートアタッチ設定を書くだけでブレークポイントが効くようになります。以下は Distroless を使わずに Alpine ベースの debug イメージ を利用した手順です。

手順概要

ステップ 内容
1️⃣ デバッグイメージをビルド docker build -t goapp001:debug --target debug .
2️⃣ コンテナ起動(ポート公開) docker run -d --name goapp-debug -p 8080:8080 -p 40000:40000 goapp001:debug
3️⃣ VS Code の launch.json 設定追加 下記 JSON を .vscode/launch.json に貼り付け
4️⃣ デバッグ開始 「Run」→「Start Debugging(F5)」でブレークポイントがヒット

.vscode/launch.json

デバッグ時に注意すべき点

  • バイナリがデバッグ情報を保持していること
    go build 時に -gcflags="all=-N -l" を付与すると最適化が無効化され、ステップ実行が正確になります。debug ステージの Dockerfile に以下を追加してください。

dockerfile
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -gcflags="all=-N -l" -o /app/goapp001 ./cmd/server

  • ファイアウォール
    ローカルマシンでポート 40000 がブロックされていると VS Code は接続に失敗します。ufw status 等で開放状況を確認してください。

ポイント:本番リリース用イメージには Delve バイナリやデバッグフラグは含めないよう、必ず --target runtime でビルドしてください。


クラウド(Google Cloud Run / AWS App Runner)への簡易デプロイ例

ローカルで動作確認が取れたら、コンテナイメージをレジストリにプッシュし、Serverless コンテナサービス にデプロイすればインフラ管理の手間が大幅に削減されます。ここでは最もポピュラーな Google Cloud RunAWS App Runner の 2 パターンを紹介します。

前提条件

項目 必要なツール
Google Cloud Platform (GCP) gcloud CLI(最新版)・プロジェクト作成済み
AWS aws CLI(v2 以上)・ECR リポジトリ作成済み

手順:イメージのビルドとレジストリへのプッシュ

Google Cloud Run デプロイ

  • --allow-unauthenticated を付けると全員がアクセス可能な HTTPS エンドポイントが生成されます。プライベートにしたい場合は IAM ロールで制御してください。

AWS App Runner デプロイ

  • 作成後にコンソールから 自動スケーリング環境変数 を設定できます。

ポイント:どちらのプラットフォームでも、DockerfileEXPOSE 8080 が正しく記述されていればポートマッピングは不要です。コンテナ起動時に自動で PORT=8080 が注入されます。


よくあるエラーとトラブルシューティング

現象 主な原因 推奨対処法
Docker が起動しない(Windows) BIOS で VT‑x が無効、または Hyper‑V と WSL2 の競合 BIOS 設定を確認し、wsl --shutdown && wsl --set-default-version 2 を実行
go.mod の取得エラー 社内プロキシが存在せず外部へ直接アクセスできない 環境変数 GOPROXY=https://proxy.golang.org,direct を設定し、.bashrc に永続化
コンテナサイズが大きい .dockerignore が未設定で test/, *.md などがコピーされている プロジェクト根に .dockerignore を作成し、不要ファイルを除外
Delve 接続タイムアウト デバッグポート 40000 が公開されていないかファイアウォールで遮断 docker run -p 40000:40000 … と明示的に指定し、ローカルのファイアウォール設定を確認
Cloud Run デプロイ失敗(permission denied) サービスアカウントに roles/run.admin が付与されていない IAM コンソールで対象サービスアカウントに Cloud Run Admin ロールを追加
Docker Desktop for Linux がインストールできない カーネルが cgroup v2 非対応、またはディストリビューション非サポート systemd.unified_cgroup_hierarchy=1 でカーネル起動オプションを付与し再起動、もしくは Docker Engine + Remote‑Containers のみ利用

まとめ:エラーメッセージはそのまま検索すると公式ドキュメントや GitHub Issue が多数ヒットします。まずは 権限・ネットワーク設定 を点検し、それでも解決しない場合は Docker Desktop のログ(~/.docker/desktop/log/vm/docker.log)を確認してください。


おわりに

本稿では、2026 年時点の最新情報に基づき Docker Desktop + VS Code Remote‑Containers を利用した Go 開発環境の構築手順を網羅的に解説しました。

  • URL は公式ダウンロードページへ統一し、将来的なリンク切れリスクを回避
  • Linux のインストールは .deb/.rpm パッケージ方式で明示し、cgroup v2 必要条件を記載
  • devcontainer.json では Docker‑outside‑of‑Docker 機能のバージョン固定をやめ、最新版自動取得に変更
  • Go の import 文は単一ブロック化してコンパイルエラーを防止
  • Distroless ランタイム使用時のデバッグ制約と代替手段(debug ステージ)を追記
  • 文字数・誤字・表記揺れを改善し、見やすさと情報密度を向上

このガイドに沿って設定すれば、ローカルでもクラウドでも一貫したコンテナ開発フロー が手に入ります。ぜひプロジェクトに導入して、開発効率・デプロイ速度の向上をご体感ください。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Go言語