天天看點

如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

【GiantPandaCV導語】本文在讓vscode在遠端連接配接伺服器時候如本地般順滑地debug(Python) 的基礎上分享了另外一種可以直接通過vscode在docker環境中進行debug的方法。

如何讓vscode遠端連接配接伺服器上的docker環境進行debug

一般深度學習算法的訓練和調試環境都在伺服器端,想不做配置就直接使用vscode進行debug不太可能。而使用遠端伺服器時,一般用docker進行環境部署的情況比較多。

使用vscode遠端連接配接伺服器debug和遠端伺服器上的docker容器進行debug,兩者關鍵差別在于後者在docker容器建立時需要注意端口映射問題。本文主要講解vscode遠端連接配接伺服器上的docker環境進行debug的具體步驟。

注意:如果是使用vscode遠端連接配接伺服器debug,則無需執行步驟一,直接從步驟二中的2開始即可。

一、伺服器端的docker容器建立時需要注意的問題

建立容器時,一般按照如下指令建立。其中,端口映射參數:-p 主控端port:容器port。

sudo docker run --gpus all -it -d -p 8010:22 --name 容器名稱 -v 本地路徑或伺服器實體路徑:容器内路徑 -d 鏡像id /bin/bash

OPTIONS說明:

  • -d: 背景運作容器,并傳回容器ID;
  • -i: 以互動模式運作容器,通常與 -t 同時使用;
  • -P: 随機端口映射,容器内部端口随機映射到主機的端口;
  • -p: 指定端口映射,格式為:主機(宿主)端口:容器端口 ;
  • -t: 為容器重新配置設定一個僞輸入終端,通常與 -i 同時使用;
  • --name="nginx-lb": 為容器指定一個名稱;
  • --volume , -v: 綁定一個卷。映射關系:本地路徑或伺服器實體路徑:容器内路徑;

上面的指令中**-p 8010:22**,就是将容器的22号端口(ssh服務端口)映射到主控端(伺服器)的8010端口。在本文中,因為需要使用ssh服務端口,是以,容器端口必須寫22。(主控端端口可以寫成其他值,但是也不能亂寫,防止端口沖突)。這樣,在後續的vscode配置中,需要将連接配接端口寫成主控端(伺服器端口),例如本文中的8010端口。下文中會介紹如何配置連接配接端口。

注意:在整個配置過程中,應該保持建立的docker容器處于運作狀态,友善後續調試。

二、docker容器内部相關配置

本文介紹的方法需要使用ssh服務進行通信,是以,需要在環境中安裝ssh。

1、進入容器中,使用如下指令修改root使用者密碼:

passwd

2、檢查容器内部是否安裝 openssh-server與openssh-client,若沒安裝,執行如下指令:

apt-get install openssh-serverapt-get install openssh-client

3、修改ssh配置檔案以下選項:

vim /etc/ssh/sshd_config

在末尾增加如下内容(直接複制即可):

#PermitRootLogin prohibit-password # 預設打開 禁止root使用者使用密碼登陸,需要将其注釋

RSAAuthentication yes #啟用 RSA 認證PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式PermitRootLogin yes #允許root使用者使用ssh登入

4、啟動sshd服務

/etc/init.d/ssh restart

5、退出容器,連接配接測試

ssh [email protected] -p 8010 注意,此處應該是測試8010端口。

輸入密碼成功進入容器内部即配置成功。

三、在vscode上的相關配置

1、安裝remote-ssh插件

在vscode最左側應用“擴充”中搜尋remote-ssh插件,然後安裝。安裝完成之後,會在“擴充”圖示下方出現“遠端資料總管”圖示。如下圖所示:
如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

2、配置vscode的config檔案

單擊“遠端資料總管”圖示,然後單擊“配置”按鈕進行配置,此時vscode會顯示“Select SSH configuration file to update”,如下圖所示,選擇路徑中帶有“.ssh”的config檔案。
如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

填寫config檔案内容,注意按照如下格式填寫:

Host可以根據自己的喜好起一個标志名稱。HostName必須填寫需要遠端連接配接的伺服器IP位址。User此處因為遠端的是伺服器上配置的docker容器,預設使用者名是root,此處需要改下為root。

特别注意:由于需要遠端連接配接的是伺服器上的docker容器,而且前面提到:ssh伺服器的22号端口已經映射為8010,是以,務必增加一個Port,填寫自己映射的端口。如果隻是遠端伺服器,不需要用docker容器,則,不需要增加Port這一行。配置完成後,儲存配置。

如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

3、開啟遠端連接配接

如下圖所示,config檔案中寫的Host名稱alias就會顯示在最左側。此時,單擊“建立連接配接”按鈕,vscode會重新打開一個視窗,提示輸入遠端伺服器的密碼,注意,此時必須填入docker容器中建立的使用者密碼。
如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

在如下圖中輸入使用者密碼,回車即可。
如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

回車之後,可能會提示選擇遠端伺服器的平台是哪一種系統類型,選項有linux\windows\MAC。應該選擇vscode安裝的系統平台類型。

選擇完成之後,回車即可。此時,在vscode的“終端”視窗可以看到進入docker容器的指令行格式。如下圖所示:

如何讓vscode遠端連接配接伺服器上的docker環境進行debug如何讓vscode遠端連接配接伺服器上的docker環境進行debug四,參考文獻

在這裡插入圖檔描述

在“終端”視窗可以檢視以下遠端連接配接的環境是否正确。

打開遠端伺服器上的代碼,可以在代碼任意行最左側打斷點,按F5快捷鍵可以debug運作。

四,參考文獻

  • https://blog.csdn.net/hanchaobiao/article/details/84069299