web-dev-qa-db-ja.com

VSCodeのリモートDockerコンテナーに接続するための依存関係?

VSCodeからリモートDockerコンテナーに接続するための依存関係と手順は何ですか?だから私は自分のコンテナー環境でツールを使用してコードを適切にコンパイルして実行できますか?

私はあまり運が悪いので、ここの指示に従ってみました:

私のセットアップは:

  • Host with VSCode、Dockerがインストールされていない、SSHクライアントがインストールされている、SSHキーが配置されている
  • Server VSCode、dockerがインストールされ、sshクライアントとサーバーがインストールされている
  • Docker containerはすでにServerで実行されています

HostRemote Development Version: 0.17.0拡張を使用してVSCodeを介してServerに接続でき、Remote - SSH Version: 0.47.2拡張を介して接続できますバージョン:0.47.2

Serverは、Docker container拡張を介してRemote Development Version: 0.17.0拡張を使用し、VSCodeを介してRemote - Containers Version: 0.83.1に接続できます。

Hostを実行中のDocker containerに接続するにはどうすればよいですか?

UPDATE 1少額

この行を~/.config/Code/User/settings.jsonファイルに追加しました。オプションはメッセージunknown configuration settingで強調表示されます

{
...
"docker.Host":"tcp://localhost:23750",
...
}

別の端末でこれを開始しました:

ssh -N -L localhost:23750:/var/run/docker.sock  <user>@<serveraddr>

そして今Remote Explorer> Containers> Other Containersで実行中のコンテナを確認できます。ただし、接続しようとすると、次のエラーメッセージが表示されます。

Setting up container with bc1700db049858ba20f1c830bbeff6d6a4e04de58a2b35a61df1016788bc07db
Docker returned an error code 127, signal null, message: Command failed: docker system info
/bin/sh: docker: command not found
5
nico

したがって、最後に言及したエラーを防ぐために、docker mustHostマシンにインストールされているようです。

:DockerサービスしないHostsystemctl disable docker)で実行する必要がある

これを念頭に置いて、これらはステップです。

Host

  1. DockerとSSHクライアントをインストールする
  2. ユーザーをdockerグループに追加する
  3. VSCodeをインストールする
  4. サーバーの構成
  5. (以下のサーバー設定後):~/.config/Code/User/settings.jsonを編集して
"docker.Host":"tcp://localhost:23750",
  1. Serverのsshキーを設定します
  2. (再起動するたびにターミナルで実行:ssh -N -L localhost:23750:/var/run/docker.sock <user>@<serveraddr>
  3. VSCodeを実行し、Remote Development拡張機能をインストールします。 VSCodeを再起動します
  4. これで、実行中のコンテナーがVSCode Remote Explorer> Containers>その他のコンテナーに表示されます。

Server

  1. DockerとSSHサーバーをインストールする
  2. VSCodeをインストールします(これはサーバーの要件ではない場合があります)
  3. ユーザーをdockerグループに追加してコンテナーを起動する
1
nico