在VScode中添加Linux中的Docker容器中的Python解释器

news/2024/10/27 22:23:38/

VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器,而想要额外添加新的Python解释器就需要自己设置。

VScode编辑器安装在本地电脑

支持Python的docker安装在远程服务器

第一步,在/usr/local/下新建python/app文件夹

命令:mkdir -p /usr/local/python /usr/local/python/myapp

python容器配置的应用目录将映射为/usr/local/python/myapp。

第二步,创建python容器。

命令:docker pull python

docker images -a

docker run -d --name mypython -p 8022:22 -v /automl:/workspace/automl -it python:latest /bin/bash

docker ps -a

注释:

[-p 8022:22]:把docker的端口号22映射到服务器的端口号8022。

[-d]:容器后台运行,避免退出容器后容器自动关闭。

[-v]:挂载和同步目录,服务器和docker内有一个文件夹保持同步。

[-it]:确保docker后台交互运行。

[python:latest]:镜像名。

[/bin/bash]:docker内要运行的指令。

第三步,容器内安装ssh服务。

# 进到IMAGE为python的容器内

命令:docker attach [容器ID]

或    docker exec -it [容器ID] /bin/bash

# 更新apt-get

命令:apt-get update

# 安装vim

命令:apt-get install vim

# 安装openssh-server

命令:apt-get install openssh-server

# 设置root密码

命令:passwd

步,配置/etc/ssh/sshd_config文件。

在文件/etc/ssh/sshd_config中添加下面的代码:

# 启用公钥私钥配对认证方式PubkeyAuthentication yes# 允许root用户使用ssh登录PermitRootLogin yes

步,重启ssh服务。

# 重启ssh服务

命令:/etc/init.d/ssh restart

或    service ssh restart

步,退出docker后,验证端口映射

命令:docker ps -a

sudo docker port [容器ID] 22

若结果输出“0.0.0.0:8022”,则说明端口映射正确。

步,在本地电脑连接docker

当退出docker后,在本地电脑连接docker,结果显示“ssh connection refused.”,这是因为退出docker后,ssh会被关掉。可以先通过命令“docker attach [容器ID]”进入container,然后输入命令“/etc/init.d/ssh restart”启动ssh服务。

# 在本地电脑打开cmd,输入ssh命令,回车后输入第三步中设置的root连接密码,就可以从本地电脑登录远程服务器的docker。

命令:ssh root@x.x.x.x -p 8022

步,使用VSCode连接远程主机上的docker container

打开VScode编辑器,按下快捷键“Ctrl+Shift+X”,查找安装“Remote Development”。安装完成后需要点击“reload”,然后按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“open SSH Configuration file”,在文件C:\Users\Administrator\.ssh\config中添加如下内容:

# Host随便起名字Host AutoML_docker# HostName是服务器的IP地址HostName x.x.x.x# Port是docker映射到服务器上的端口号Port 8022User root

保存后,按下快捷键“Ctrl+Shift+P”,输入“remote-ssh”,选择“Connect to Host...”,然后点击“AutoML_docker”,接着选择“Linux”,最后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。

第九步,在服务器docker中配置VScode debugger。

成功连接docker之后,按下快捷键“Ctrl+Shift+X”,查找“Python”,并安装在服务器docker中。然后重启VSCode。

重新连接docker,按下快捷键“Ctrl+Shift+P”,输入“python: select interpreter”,点击“选择解释器”,就会列出在系统中找到的Python环境,点击需要的python解释器即可。

确定在VScode中是否添加了Python解释器:

1)先在桌面新建一个文件夹,并命名为“aaaa”;

2)在VScode中,点击“File”,并选择“Open Folder”,将桌面新建的“aaaa”添加进来;

3)添加“aaaa”后点击确定,并选择“Yes,I trust the authors”;

4)在添加进来的“aaaa”项目中点击“New fiel…”,创建文件text.py;

5)在创建好的text.py中输入代码“print(‘hello world’)”,并点击运行按钮,即可在终端得到运行结果。

执行上述步骤之后,可在VScode右下角看到“Python”的内容,说明在VScode中添加了Python解释器。

可以通过命令“docker attach [容器ID]”进入Python容器,然后在容器中使用命令“find / -name launch.json”查找launch.json。

按下快捷键“Ctrl+Shift+D”,点击“运行和调试”,点击“安装扩展”,就会在“扩展”选项列出在系统中找到的“@category:debuggers”。

按下快捷键“Ctrl+Shift+D”,接着点击“打开文件”,填入刚刚查找的launch.json路径(/root/.vscode-server/bin/441438abd1ac652551dbe4d408dfcec8a499b8bf/extensions/debug-auto-launch/.vscode/launch.json),点击“确定”就可以打开launch.json文件。

编辑launch.json文件,把文件中的代码全部换成下面的代码:

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "python","request": "launch","name": "Python: Current File (Integrated Terminal)","skipFiles": ["<node_internals>/**"],"program": "${file}"}]}

VScode debugger配置完成之后,可以选择刚才配置的解释器来逐行调试docker内的代码。因为docker内的代码是通过-v与服务器同步的,所以修改docker内的代码后,服务器上的代码也会跟着改变,需要git时,就只需在服务器端设置,而不用在docker内设置。

第十步,退出容器,并将容器保存为新的镜像

命令:docker ps -a

docker images -a

docker commit [OPTIONS] [容器ID] [新的镜像名称:新的镜像标签]

[OPTIONS]说明:

[-a]:提交的镜像作者。

[-m]:提交时的说明文字。

[-p]:在commit时,将容器暂停。

第十一步,基于新镜像创建并运行新的容器。

命令:docker run -t -i -p 8022:22 --name [新容器名称] [新的镜像名称:新的镜像标签] /bin/bash

# 退出新的容器,重启新的容器

命令:systemctl restart docker

docker start [新的容器ID]

# 新的容器启动成功,会显示相应的端口号

命令:docker ps -a

# 只要保证新的容器内22端口成功启动,就可以进行远程连接。

命令:sudo docker port [新的容器ID] 22

# 进到新的容器内

命令:docker attach [新的容器ID]

或    docker exec -it [新的容器ID] /bin/bash

# 重启ssh服务

命令:/etc/init.d/ssh restart

或    service ssh restart

点击“远程资源管理器”选项,接着点击“SSH—AutoML_docker—在当前窗口连接”,然后按提示输入第三步中设置的root连接密码,在左下角显示“SSH:AutoML_docker”,说明已经成功连接docker。


http://www.ppmy.cn/news/622724.html

相关文章

【Html】Html+Less实现一个简单的加载动画

效果 运行环境 系统&#xff1a;Win10系统 IDE&#xff1a;Visual Studio Code v1.79.2 VSCode插件&#xff1a;Easy LESS v2.0.0 index.html代码 <!DOCTYPE html> <html><head><title>加载动画</title><link rel"stylesheet" hr…

IEEE802.11协议栈

1、概述 mac80211&#xff1a;是一个Linux内核子系统&#xff0c;是驱动开发者可用于为SoftMAC无线设备写驱动的框架。mac80211在内核空间实现STA模式&#xff0c;在用户空间实现AP模式&#xff08;hostapd&#xff09;。 cfg80211&#xff1a;用于对无线设备进行配置管理&…

Docker中安装Gitlab详细全教程

Docker中安装Gitlab详细全教程 前言一、安装Gitlab1.搜索影像2.下载影像3.启动Git服务4.查看Gitlab是否已经启动 二、配置Gitlab1.首先&#xff0c;先进入容器2.修改gitlab.rb文件3.修改gitlab.rb文件中的IP与端口号3.配置gitlab.yml文件4.重启服务5.退出命令行&#xff0c;推出…

windows和docker容器的ssh连接

windows和docker容器的ssh连接 1、背景及概述 关系&#xff1a;宿主机&#xff08;windows10)----》VMware虚拟机&#xff08;10.0.0.150&#xff09;----》docker容器&#xff08;192.17.0.2&#xff09; 目的&#xff1a;在windows电脑ssh到linux虚拟机中的docker容器中&…

termux开启ssh服务与连接(用户密码登录)

结果&#xff1a;termux开启ssh这个问题也是耗费了我不少时间&#xff0c;结果最后发现是最低级的错误&#xff0c;用xshell连接的时候&#xff0c;输入的端口是22&#xff0c;后面才知道termux的默认端口是8022&#xff0c;但还是用xshell的命令行输入端口为8022去连接&#x…

IEEE802.X协议族

802.X协议是由&#xff08;美&#xff09;电气与电子工程师协会提出&#xff0c;刚刚完成标准化的一个符合IEEE802 协议集的局域网 接入控制协议&#xff0c;全称为基于端口的 访问控制协议。能够在利用IEEE 802局域网优势的基础上提供一种对连接到局域网的用户进行认证和授权的…

【80211协议】21.3.17

21.3.17 VHT传输规范 21.3.17.1 发射频谱掩膜 注1:如果存在额外的监管限制&#xff0c;设备必须同时满足监管要求和本小节中定义的掩模。 注2:本小节中的发射光谱掩模图不是按比例绘制的。 注3&#xff1a;TX中心频率泄漏等级规则请参见21.3.17.4.2。本款中的光谱掩模要求不适…

802标准

IEEE 802委员会成立于1980年2月&#xff0c;它的任务是制定局域网和城域网标准。802委员会目前有20多个分委员会&#xff0c;它们研究的内容分别如下。 &#xff08;1&#xff09; 802.1局域网体系结构、寻址、网络互联和网络管理。 &#xff08;2&#xff09; …