BionetServer-No1. Q&A-Docker
Version:1.1
Date: 2026.03.18
Authors:NeoNexus, dlq
[TOC]
Q&A:
问题零 通过容器写入的文件无法运行?
容器的用户都是root身份,而UI登陆的是以用户的身份来登陆的,普通用户当然没有权限来操作root的内容,解决办法:
将文件修改成主机所有者,在容器的终端中使用命令
sudo chown UID 文件/目录路径
如果要修改某个文件夹的全部文件,可以使用:
sudo chown -R UID 文件/目录路径
UID信息在UI界面使用命令获取,比如:

打个比方,修改我在主机上:/Datasets/bionet/Dataset/A/ 文件夹的可以使用:
sudo chown -R 1001 /Datasets/bionet/Dataset/A/
这样这个文件夹下所有文件都可以正常使用。
R语言已经实现了UID的同步,所以没有这个问题。
这里放一个在Jupyter中修改权限的的例子:
# ls -alh
total 8.0K
drwxr-xr-x 2 root root 4.0K Apr 18 2022 .
drwxr-xr-x 1 root root 4.0K Jun 7 15:51 ..
# cd /tf 首先要到对应的文件夹下来操作文件
# ls -alh
total 6.9M
drwxrwxrwx 1 root root 4.0K Jun 7 15:51 .
drwxr-xr-x 1 root root 4.0K Jun 7 15:51 ..
drwxrwxrwx 11 1001 1002 14 Jun 5 05:03 Datasets
drwxrwxrwx 6 root root 6.8M May 26 06:23 NCZone
drwxrwxr-- 6 1001 1001 4.0K Jun 7 15:30 Share_Space
drwxrwxrwx 1 root root 4.0K Sep 2 2023 tensorflow-tutorials
# cd Share_Space
# ls -alh
total 28K
drwxrwxr-- 6 1001 1001 4.0K Jun 7 15:30 .
drwxrwxrwx 1 root root 4.0K Jun 7 15:51 ..
drwx------ 4 root root 4.0K Jun 7 15:30 .Trash-0
drwxr-xr-x 2 root root 4.0K Jun 7 15:30 .ipynb_checkpoints
drwxrwxr-- 6 root root 4.0K May 4 11:07 PTM
drwxrwxr-- 2 1000 1000 4.0K Jun 7 09:13 TEST
-rwxrwxr-- 1 root root 2.2K Apr 23 15:11 test.py
# pwd
/tf/Share_Space
# sudo chown 1001 TEST
# ls -alh
total 28K
drwxrwxr-- 6 1001 1001 4.0K Jun 7 15:30 .
drwxrwxrwx 1 root root 4.0K Jun 7 15:51 ..
drwx------ 4 root root 4.0K Jun 7 15:30 .Trash-0
drwxr-xr-x 2 root root 4.0K Jun 7 15:30 .ipynb_checkpoints
drwxrwxr-- 6 root root 4.0K May 4 11:07 PTM
drwxrwxr-- 2 1001 1000 4.0K Jun 7 09:13 TEST
-rwxrwxr-- 1 root root 2.2K Apr 23 15:11 test.py
问题一 容器重启之后无法连接?
容器重启之后ssh服务被中断,需要手动重启,打开portainer输入以下命令:
service ssh restart
即可重新连接。

考虑是否有端口冲突,网络问题等,排查后仍无法连接请联系我
问题二 创建一个Docker失败之后再次连接相同端口为什么不行?
因为ssh有校验措施,只能连接到同一台物理设备,当你的设备失效以后就无法使用,删除过去的key即可重新连接:
问题三 关闭了VSCode代码就停止运行了?
实际上是这样的,SSH需要保持连接才能运行,不过不要紧我们使用命令来将代码任务注册到后台来持久运行,这样你的代码只需要在默认模式下调整好之后,在再使用如下命令即可保持运行:
当我们运行的代码的时候实际上就是在命令行中调用了命令:

我们需要将这个命令和nohup来结合实现运行不掉线:
同见问题五正确更新
按方向键盘的上键可以找到上一次运行的命令,当然运行之前要确认当前目录在哪里,是不是你想要的目录?
(base) root@77d5769f235a:/# cd /home/Share_Space/
(base) root@77d5769f235a:/home/Share_Space# ls
data test.py
(base) root@77d5769f235a:/home/Share_Space# /opt/conda/bin/python /home/Share_Space/test.py
下面我们来使用nohup将任务保持在后台,格式如下:
nohup 你的运行命令 > output.file 2>&1 &
结合上边的命令,效果如下:
nohup /opt/conda/bin/python /home/Share_Space/test.py > output.file 2>&1 &
我们来运行一下:

同时可以看到,这里有了对应的输出文件,输出文件保存了所有输出:

当然运行完成之后文件显示的更加准确~
问题四 Bad owner or permissions on
如果出现**Bad owner or permissions on C:\Users\Administrator/.ssh/config > 过程试图写入的管道不存在。 >**的问题,该问题是config文件权限高,vscode不能修改造成的,两种解决办法第一种是修改原来C:盘的config文件权限;第二种是在其他盘新建一个config文件,用于存储远程连接用户,地址等基本信息。
第一种解决办法
a.找到.ssh文件夹。它通常位于C:\Users
b.右键单击.ssh文件夹,然后单击“属性”,选择“安全”
c.单击“高级”。 单击“禁用继承”,单击“确定”。 将出现警告弹出窗口。单击“从此对象中删除所有继承的权限”。
d.此时所有用户都将被删除。添加所有者。在同一窗口中,单击“编辑”按钮,单击“添加”以显示“选择用户或组”窗口。
e.单击“高级”,然后单击“立即查找”按钮。应显示用户结果列表。 选择用户帐户。
f.后面一路点击确定便可。
记得重启电脑来刷新设置。
第二种解决办法
在除了C盘以外的文件夹新建config文件(空的就可以),在romote-SSH插件的扩展设置中,修改config文件的路径。

问题五 Python脚本使用nohup运行时,指定文件没有输出内容
此问题由戴珏泓发现
实际上为Python的缓存机制带来的问题,log存在缓存区中没有及时更新:
可以看到运行之后没有对应的输出;
解决方法:
cd进入脚本所在目录执行nohup命令,在命令的python路径与脚本路径之间加-u,强制输出不通过缓存直接打印
例如:
nohup /opt/conda/bin/python /home/Share_Space/metrics_ml/GA_xgboost.py 2>&1 &
改为:
nohup /opt/conda/bin/python -u /home/Share_Space/metrics_ml/GA_xgboost.py 2>&1 &
问题六 创建容器提示Code Failed 500 代码错误
排查是否有以下几个问题:
①这一步中,需要修改的名字是否和你的账号名相同(大小写也要一致)
②端口是否和其他人的重复了?(其他人的端口号可以在Container界面右滑看到)

③检查内存设置是否合理,镜像是否有选择对
不要偷懒,直接复制这个错误的镜像号码,正确的镜像一般以bionet或者neonexus开头,下边是一个错误示范:
问题七 如何给conda配置国内镜像源
-
切换容器的目录到
/root下
-
在容器的
/root目录下新建.condarc文件
- 复制以下内容到
.condarc文件中并保存:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
- 使用以下命令清楚缓存(想要恢复默认也使用这个)
conda clean -i
- 用
conda info检查配置是否生效,确认channel URLs已经变成清华源地址。结果应该如下所示:

问题八 如何开启容器的免密登陆
开启免密码登录方式如下:
首先打开你的ssh配置文件:
打开之后我们先放这里,等下再用。我们把这个路径叫做SSH配置路径,一定要记住这个路径,可以截图。
我们在windos文件管理器中打开这个文件夹:
这里分为两种情况,一种是你已经有了上述id_rsa.pub文件,如上图红框所示。
另一种情况是没有这个文件,如下所示:
如果你没有,我们打开本地的系统命令行:
输入以下内容:
ssh-keygen
这里会提示让你输入密钥文件保存在哪里,这里就要放在你刚才的那个路径的文件下面,就是在vscode设置中打开的路径。记住是文件夹,不是文件,文件夹通常名字为:“.ssh”。
输入之后一路回车下去直到看到这个图形生成:
这里就结束了,然后我们回过头打开这个文件,使用vscode或者记事本都可以,同时我们也打开远程服务器的这个目录下的文件:
这路径全名是:
/root/.ssh/authorized_keys
打开之后我们将刚才打开的id_rsa.pub文件中的内容复制过来,通常如下图所示:
然后我们回到最初打开的ssh配置文件,在你的电脑SSH配置路径上,如果没打开的话,我们还是点击这里打开:
添加一行内容:
IdentityFile "C:\Users\NeoNexus\.ssh\id_rsa" 这里的路径要修改成你的配置路径,要记得这里的id_rsa文件并不带pub后缀因为这是私钥
添加后效果如下:

记得Ctrl+S保存修改
重启VSCode就可以愉快免密码直接使用了
问题九 VScode 代码补全失效
Vscode代码补全静态检查等依赖于其对应的语言插件
手动开启可以尝试:
