Skip to content

Docker × Cursor × Remote-SSH 開発環境のメリット・デメリットまとめ(現場目線)

| | 📖 8分で読めます
Docker × Cursor × Remote-SSH 開発環境のメリット・デメリットまとめ(現場目線)

ローカルPCで全部動かす開発から、クラウド(VPS / EC2など)も併用する開発へ移るときに強いのが、Docker / Cursor / Remote-SSH の組み合わせです。

結論から言うと、この構成は「速く・再現性高く・複数案件を並行しやすい」一方で、「リソース不足・ネットワーク依存・運用の癖」がデメリットになりがちです。

この記事では、それぞれのツールの役割と、導入判断に必要なメリット・デメリットを整理します。


まず全体像:この3つは何を解決する?

  • Docker:開発環境をコンテナ化して、OS差・依存関係差を消す(再現性)
  • Cursor:AI支援が強いエディタで、実装スピードを上げる(生産性)
  • Remote-SSH:ローカルではなくリモート環境で開発できる(性能・統一環境・チーム向き)

ざっくり言うと、

  • 「環境差で詰まる」を Docker が減らし
  • 「調査と実装が遅い」を Cursor が短縮し
  • 「ローカルが重い・環境を統一したい」を Remote-SSH が解決します

Docker のメリット・デメリット

Dockerのメリット

1) 環境差が消える(再現性が強い)

  • 「自分のPCでは動くのに、本番で動かない」を減らせる
  • PHP / Node / DB / Redis など複数サービスがいても、同じ構成を再現できる

2) 案件を分離できる(複数案件に強い)

  • 案件AはPHP8.2、案件BはPHP8.1…みたいな共存が楽
  • 依存関係の衝突が起きにくい

3) チーム化しやすい

  • docker compose up で誰でも同じ環境を立ち上げられる
  • 新メンバーの立ち上がりが速い

4) ローカルPCの破壊を防げる

  • ホストOSの環境を汚しにくい
  • “入れたものを戻せない”事故が減る

Dockerのデメリット

1) ローカルが重くなる(特にMac + Docker Desktop)

  • CPU / メモリを食う
  • DBや検索系(Elasticsearch等)を積むと一気に辛い
  • ファイル同期が遅くなることもある(特に大量ファイル)

2) ネットワークとポートの罠

  • localhost:8001 が別のサービスと衝突
  • プロキシ / リダイレクト / HSTS / キャッシュで「ブラウザだけ挙動が違う」も起きがち
  • コンテナ間通信、ホストとの接続など、慣れないと混乱する

3) 永続化(volume)と移行が難しい

  • Docker Desktopの移行・バックアップが分かりづらい
  • volumeが増えるほど「どれが大事?」となる
  • “消したらDBも消えた”が起きる

4) 本番と完全一致はしないこともある

  • ローカルはDocker、本番はKubernetes/別構成…などでズレが出る
  • ファイル権限やストレージの差で詰まることがある

Dockerが向いている人

  • 複数案件を並行する
  • チーム開発・引き継ぎが多い
  • DB/Redis/Queueなど周辺サービス込みで動かしたい

Dockerがしんどくなりやすい人

  • ローカルPCが非力(メモリ少なめ)
  • とにかく早く軽くコードを書きたいのが最優先
  • volume運用やネットワークに時間をかけたくない

Cursor のメリット・デメリット(AIエディタとして)

Cursorのメリット

1) 実装スピードが上がる

  • 「やりたいこと」を説明 → 叩き台生成 → 手直し、が速い
  • 既存コードの改修(リファクタ / 例外処理追加 / テスト追加)に強い

2) 調査コストが下がる

  • エラーの原因推定
  • ログや設定から「怪しいポイント」を挙げる
  • 仕様書・READMEの整備も進む

3) “理解しながら進む”がやりやすい

  • 「このファイルの責務は?」
  • 「この処理は何を保証してる?」
  • みたいな問いに強い

Cursorのデメリット

1) AI任せにすると品質が落ちる

  • “それっぽい”コードを出すことがある
  • セキュリティ・境界条件・性能面は人のチェック必須
  • 「動くけど保守できない」が生まれやすい

2) 大規模変更はレビューが必須

  • 一括変更は便利だが、差分が大きくなる
  • 影響範囲の読み違いが起きる

3) リモート開発時に重くなることがある

  • Remote-SSH と組み合わせると、言語サーバや解析が重くなりがち
  • リモート側スペックが低いと体感が落ちる

Cursorが向いている人

  • 仕様書から実装へ落とすのが多い
  • “速度”を最優先したい
  • ドキュメント整備も並行したい

Cursor運用のコツ

  • AIの提案は「採用」ではなく「下書き」扱いにする
  • 重要箇所はテスト or 最低限の検証をセットにする
  • 大きい変更は「小さく分けて」適用する

Remote-SSH のメリット・デメリット(リモート開発)

Remote-SSHのメリット

1) ローカルを軽くできる(性能をリモートに逃がせる)

  • ローカルPCの負荷が減る
  • Dockerもリモートで回せるので、Macが軽くなることが多い

2) 開発環境を統一しやすい

  • チームで同じOS/同じミドルウェアに寄せられる
  • OS差のバグが減る

3) サーバ寄りの案件に強い

  • Nginx/SSL/cron/queue など、実運用に近い形で作業できる
  • 本番を意識した検証がしやすい

Remote-SSHのデメリット

1) ネットワーク依存(回線が悪いと即つらい)

  • ラグや切断があると作業効率が落ちる
  • 出先・移動中に弱い

2) リモート側のスペック不足で不安定になる

  • 小さいインスタンスだと、言語サーバ+Docker+エディタで落ちやすい
  • インストールがタイムアウトなどが起きることもある

3) セキュリティ運用が必須

  • SSH鍵管理、FW設定、fail2ban、権限設計など
  • 「開発が速い」代わりに「守りの運用」が必要になる

4) コストが増える場合がある

  • リモートに開発用サーバを用意するなら月額が発生
  • インスタンスを上げるほど快適だがコストも上がる

Remote-SSHが向いている人

  • ローカルが重い/限界
  • Docker込みで統一環境を作りたい
  • サーバ寄りの開発(Web/インフラ寄り)が多い

この3つを組み合わせた時の“強み”と“落とし穴”

組み合わせの強み(理想形)

  • Dockerで「環境差」をなくす
  • Remote-SSHで「重さ」をリモートへ逃がす
  • Cursorで「実装速度」を上げる

つまり、再現性 × パワー × 生産性のフルセットになります。

よくある落とし穴(現場で詰まりやすいポイント)

1) リモートのメモリ不足でCursorが重い

  • 言語サーバ(PHP/TS)やDockerが同時に動く
  • 対策:リモートのスペックを上げる/コンテナを絞る/解析機能を調整する

2) ポート/リダイレクト/HSTSで挙動が崩れる

  • 「ブラウザだけ別ポートに飛ぶ」「HTTPS強制」など
  • 対策:開発用ドメインを分ける、ブラウザのHSTS/キャッシュを整理、Proxy設定を統一

3) volumeが増えて移行・バックアップが辛い

  • 対策:DBはダンプ運用を用意(定期的にexport)、重要volumeを明確にする

4) セキュリティを後回しにしがち

  • 対策:鍵運用・権限分離・FW・ログ監視だけは最初に整える

おすすめ運用(迷ったらこの形)

運用パターンA:ローカル重い → リモートに寄せる

  • リモート:Docker + DB + アプリ
  • ローカル:Cursor(Remote-SSH接続のみ) → 一番“体感が軽い”ことが多い

運用パターンB:オフライン作業もしたい → ローカルDocker中心

  • ローカル:Docker + Cursor
  • リモート:検証環境(本番相当)だけ → 回線に左右されにくい

運用パターンC:チーム開発 → 共有の開発サーバ+Docker

  • 開発サーバを統一して、全員がRemote-SSH
  • composeで環境固定 → オンボーディング最速

まとめ:メリット・デメリットを理解すると最強構成になる

  • Docker:環境差を消して再現性を上げる(ただし重い/移行が面倒)
  • Cursor:実装スピードと調査効率が上がる(ただし最終責任は人)
  • Remote-SSH:ローカル負荷を逃がして環境統一できる(ただし回線・セキュリティ・コストが増える)

この3つは「なんとなく導入」だと詰まりやすいですが、役割を分けて設計すると、開発速度と安定性が両立できます。

デジタル体験を、
もっと美しく、機能的に。

Studio Puff では、デザインと技術を融合させた Webサイト制作・システム開発を行っています。
新規プロジェクトのご相談や、技術的な課題解決など お気軽にお問い合わせください。