VS Codeはサーバー上のDockerの開発環境構成に基づいています

Dev Containers プラグインに基づく

もちろん、vscode で Dev Containers プラグインを直接ダウンロードし、サーバーに接続した後、Dev Containers で対応する Docker 接続を見つけて直接開発することもできます。


この時点で、サーバー上で実行中のすべての Docker コンテナが表示されます (この時点で、開発する Docker コンテナが実行されていることを確認する必要があります)。対応する Docker コンテナをクリックして接続すると、その後の操作が実行されます。リモート SSH 接続サーバーの動作と一致します。

ジャンプマシンをベースに

スプリングボード マシンは、サーバーをスプリングボードとして使用し、このスプリングボードを通じてサーバー内の Docker コンテナに接続すると理解できます。

サーバーは SSH 経由で Docker コンテナに接続します

サーバーは Docker コンテナに直接接続できることに注意してくださいdocker exec -it <docker_container> /bin/bash。ここでは、SSH を使用して Docker コンテナに接続するデモを示します。

ssh -p <port> [email protected]
# 注意此处的<port>是指docker容器22端口映射到本地的端口
# 即在创建docker容器的时候 docker run -it -p <host_port>:22 ......
# 此处的<host_port>就是指上述命令中的<port>

上記のコマンドを通じて docker コンテナに接続できますが、接続前に docker コンテナで一部のパラメータを変更する必要があることに注意してください。

vim /etc/ssh/sshd_config

PubkeyAuthentication yes # 启用公钥私钥配对认证方式
PermitRootLogin yes # root能使用ssh登录
port=22 # 开启22端口

次に、サーバーの公開キーを~/.ssh/id_rsa.pubDocker コンテナ内のファイルに追加して~/.ssh/authorized_keys、シークレットなしのログインを実現します。

VS Code は、Docker コンテナーに接続するように ssh 構成ファイルを構成します

ここでは macOS を例として取り上げます。まずホーム ディレクトリで~/.ssh/configファイルを見つけます。

# 配置服务器作为跳板机
Host server  # 自定义即可
	User <username>
	HostName <server_ip>
	Port <port>  # 此处<port>是指服务器的ssh端口(默认是22)
	IdentityFile ~/ssh/id_rsa  # 如果是私钥连接服务器,则需要本地私钥文件

# 利用跳板机连接docker容器
Host server_docker  # 自定义即可
	User root
	HostName 127.0.0.1
	Port <map_port>  # docker容器22端口映射到server服务器的端口
	ProxyCommand ssh -W %h:%p server  # 此处的server是跳板机的名字 必须和跳板机的Host后面的名称一致

この時点で、VS Code のリモート ssh プラグインの下に構成されたサーバーと server_docker が表示されます。接続する Docker コンテナーをクリックするだけです。

上記の操作手順から、実際には 2 つの ssh 接続方法は同じ原理を持っています。つまり、最初にサーバーに接続し、次に Docker コンテナに接続します。これで、VS Code を使用して Docker コンテナを楽しく開発できるようになりました。

おすすめ

転載: blog.csdn.net/qq_41139677/article/details/131361736