ubuntu 系统连接服务器,在docker容器内实现X11 可视化,以及文件的上传、下载
发现比下面方法更好的方法,用Remmina软件,配置RDP连接,实现服务器可视化
=====================================
MobaXterm 不支持 Ubuntu,Termius没有X11 可视化支持,推荐Asbru软件:
https://www.asbru-cm.net/
这种方法不太推荐,更推荐VNC方法登陆、可视化服务器,参考:https://www.cnblogs.com/biyun/p/18664556
1. 配置X11 可视化:
如下,勾选Forward X

2.docker容器内配置X11 可视化
(1)在 Dockerfile 中安装 xclock
这种方法比较推荐,因为它将 xclock 的安装集成到 Docker 镜像构建过程中,确保每次启动容器时都已有 xclock 可用。
更新 Dockerfile
确保你的 Dockerfile 包含安装 x11-apps 的步骤,因为 xclock 是 x11-apps 包的一部分。
以下是更新后的示例 Dockerfile:
FROM nvidia/cuda:12.1-devel-ubuntu20.04 # 安装必要的开发工具和 X11 工具 RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libxkbcommon-x11-0 \ libxcb-xinerama0 \ x11-apps \ # 安装 x11-apps 包含 xclock 工具 python3 \python3-pip \ curl # 安装 PyTorch RUN python3 -m pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121# 设置环境变量 ENV PATH /usr/local/cuda-12.1/bin:$PATH ENV LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH # 复制项目代码 COPY . /workspace/ WORKDIR /workspace # 启动命令 CMD ["bash"]构建 Docker 镜像
通过以下命令构建 Docker 镜像:
docker build -t my_cuda_project .(2)在本地运行echo $DISPLAY,输出类似:
hynx-HYDT-GPU-01/unix:21 MIT-MAGIC-COOKIE-1 f68b4b725b216ae189c9186e9877540c在远程服务器上运行,xauth addhynx-HYDT-GPU-01/unix:21 MIT-MAGIC-COOKIE-1 f68b4b725b216ae189c9186e9877540c
上面命令不太准确,具体问大模型吧。。
然后,在服务器是运行echo $DISPLAY,列出类似如下localhost:21.0的信息,
然后,在服务器上运行 xauth list,找的与
localhost:21.0 (即 unix:21) 对应的认证信息。例如:
hynx-HYDT-GPU-01/unix:21 MIT-MAGIC-COOKIE-1 f68b4b725b216ae189c9186e9877540c
(3)启动容器的命令中加入下面关联:
docker run --gpus all -it \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/.Xauthority:/root/.Xauthority:rw \
my_cuda_project
上面使用 rw 选项以确保读写权限。
进入容器后,根据 上面xauth list 输出的认证信息添加 X11 认证信息:
xauth add unix:21 . f68b4b725b216ae189c9186e9877540c
这里我不确定,启动容器的命令包含了,-v $HOME/.Xauthority:/root/.Xauthority:rw \,是不是不用执行上面一行的命令了,
在我的情况,上面一行命令没有执行成功。
(3.2) 使得启动容器 在退出后,容器还存在,从镜像生成容器的命令如下:
docker rm -f foundationpose_custom_cuda121
DIR=$(pwd)/../
xhost + && docker run -d \
--gpus all \
--env NVIDIA_DISABLE_REQUIRE=1 \
--network=host \
--name foundationpose_custom_cuda121 \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-v $DIR:$DIR \
-v /home:/home \
-v /mnt:/mnt \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /tmp:/tmp \
-v ~/.Xauthority:/root/.Xauthority:rw \
--ipc=host \
-e DISPLAY=${DISPLAY} \
-it foundationpose_custom_cuda121_jbw:latest bash
# tail -f /dev/null
然后,通过docker exec -it foundationpose_custom_cuda121 bash 进入容器。
(4)在容器内运行xclock,如果没有安装,执行apt-get install -y x11-apps
3.上传本地文件到远程服务器:
方法1

(1)上传本地文件到服务器,命令:put 本机地址/文件 客户端地址

(2)下载远程服务器文件到本地,命令: get 远程服务器文件 本地路径
方法2,【推荐】安装图像界面软件 filezilla
sudo apt-get install filezilla
参考
https://unix.stackexchange.com/questions/344795/is-there-a-program-like-mobaxterm-for-linux-systems-sftp-gui-browser-termina
https://blog.csdn.net/HITORANGE/article/details/123584025

浙公网安备 33010602011771号