0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCでリモートサーバー上のDockerを用いる3つの方法

Last updated at Posted at 2021-05-06

一番直感的な操作はVSCではRemote-SSHでリモートサーバーに接続し、その上でRemote-Containerを利用することだが、現状のVSCでは実装されていない。VSCのドキュメントに替わりの方法として大まかに三通りの入り口が載っていたが、自分には最後の方法が一番使いやすそう。

1. Remote-SSHを用いる

VSCのDocumentで第一に記載されている方法だが、

The Docker extension supports debugging .NET Core-based and Node.js-based services running inside a container. Other programming languages are not supported at this time.

とのことで、__.NET Core-basedの言語か、Node.jsでしか使えない__よう。

#2. docker contextで切り替える

ssh-agentを設定した上で、SSH tunnelingを用いてremote Docker engineを指定したdocker contextを作成し、適宜切り替える。この場合、dockerコマンド自体のcontextが切り替わるので、ローカルマシン上のDocker engineを使用しようとすると毎度切り換えないといけない。

そのまま"Open folders in Containers"を実行すると、ローカルフォルダをマウントしようとしてエラーになる。Remote ExplorerやDocker extentionタブからすでに作成されているコンテナを選択し、Attach to containerでコンテナに入るのが良いか。

#3. docker.hostを利用する
https://code.visualstudio.com/docs/remote/containers-advanced#_converting-an-existing-or-predefined-devcontainerjson

ssh-agentの設定は2と同様に行い、settings.json内のdocker.hostを設定する。これはDOCKER_HOSTでdocker contextをオーバーライドするのと恐らく等価。空のフォルダを作ってワークスペース設定として設定すれば、ローカル/リモートなど__複数のDocker engineを同時に利用できる__。これは2.の方法にはない利点。

またこの方法では、ローカルマシンに"devcontainer.json"を作成することでローカルなDockerfileからコンテナ作成や、リモートマシン上のフォルダのマウントなどを設定することができる。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?