やりたいこと
手元のPCのVS CodeでSSHで繋がるサーバ上で動くDockerコンテナの中身を弄りたい
#環境
ホストPC・・・Windows10 64bit
リモート先・・・Ubuntu 16.04.5 LTS , Docker version 19.03.1
#前提
リモートサーバ上でDockerが動くこと
VS CodeにRemote Developmentが入っており,SSHでリモートサーバにアクセスできること
やり方はググるといっぱい出てきます.
Remote Development - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack
#手順
操作はすべてホストPCで完結します.
##Docker Desktopのインストール
日頃からRemote-SSHにお世話になっていたこともあり拡張機能のインストールだけで済むと勝手に思い込んでいましたが,ちゃんとホストPCにもDockerをインストールしないといけませんでした.
これに気づかずにだいぶ時間を無駄にしてしまいました...
Docker Desktop for Windows - Docker Hub
https://hub.docker.com/editions/community/docker-ce-desktop-windows
インストーラーを実行後,再起動して導入は完了です.
これに関しては他に設定を変えたりはしていません.
##.ssh/configファイルの編集
VS CodeでF1→Remote-SSH: Open Configuration File... を開きます.
ポートフォワーディングを行うためにLocalForward~を追記します.
Host RemoteServer
HostName xxx.xxx.xx.xx
User xxxxxxxx
Port 22
IdentityFile "C:\Users\xxxx\.ssh\id_rsa"
LocalForward 23750 /var/run/docker.sock
##VS CodeにDockerの拡張機能をインストール
Remote-SSHでリモートサーバに接続し,接続先のワークスペースにDockerの拡張機能をインストールします.
Docker - Visual Studio Marketplace
https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker
インストールしたらVS Codeの設定を変更します.
docker.host と入力して出てきた欄に下記を入力します.
tcp://localhost:23750
作業は以上で完了です.
#実行
サイドバーのリモートエクスプローラーボタンをクリックし,上のプルダウンメニューからContainersを選択するとコンテナ一覧が表示されます.
コンテナの名前の上で右クリックしてConnect to Containerを押すと新しいウィンドウが立ち上がり,コンテナを操作できるようになります.
この使い方だとクジラアイコンのDocker拡張機能は使えない?みたいなので右クリックで非表示にしています.
#おわりに
これでDockerコンテナ内でコードがガシガシ書けるようになったので良かったです.