2024.05.15 [AI开发配环境]个人使用最新版远程服务器配环境大纲:docker、云盘、ssh、conda等

不包括在宿主机安装docker。

docker

找到心仪的镜像,比如从网上pull:https://hub.docker.com/r/pytorch/pytorch/tags?page=&page_size=&ordering=&name=2.0.1

docker pull pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel
# 新建容器
docker run --privileged --gpus device=all --shm-size 125G -p XXXX:6006 -p XXXX:22 -it -d -v /home/yuqiao/docker_home:/home/yuqiao -w /home/yuqiao --name qiao pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel /bin/bash

# 运行容器
docker exec -it <container_name> /bin/bash

安装必要的东西

apt-get update
apt-get install vim
apt-get install git
apt-get install sudo

新建用户(可选)

新建用户:
adduser -uid 1001 yuqiao # 会自动给你分到相同id的组中

把它添加到sudoer:
vim /etc/sudoers #在root底下添加一行,root改成新建的用户名,其他不变

复制.batchrc
cp ~/.bashrc /home/yuqiao/.bashrc

激活 .bashrc
su yuqiao
source ~/.bashrc

如果需要回到root:
su

如果文件夹权限是root,改回yuqiao:(1001是yuqiao 的uid)
chown -R 1001:1001 .

安装并配置ssh(可选)

个人习惯用ssh直接连docker,如果没有这个需求可以跳过这一步。

passwd # 设置密码,用于ssh登录
apt-get install openssh-server # 安装ssh

配置ssh协议,允许密码登录root,允许X11转发:

vim /etc/ssh/sshd_config

修改里面的如下内容:

PermitRootLogin yes #允许root用户登录
PasswordAuthentication yes # 允许用密码登录
X11Forwarding yes # 允许X11转发
X11UseLocalhost no # 不要让它走localhost,可能导致转发失败(亲测没有这句不行)
#AddressFamily inet # 使用Ipv4,有的地方可能ipv6不行


修改好后,要重启ssh才能生效

/etc/init.d/ssh restart
service ssh restart

如果没有conda,则需要安装conda

下载下来代码后,建议用conda虚拟环境。
Linux python环境配置之第三方库的安装

好的链接失效了。
注意记住配好的虚拟环境的路径,需要的时候可以整体转移。重新下载这些包是非常非常慢的。

下载miniconda

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装miniconda

bash Miniconda3-latest-Linux-x86_64.sh

注意,需要阅读协议,大多数地方要按ENTER,少部分地方要输入yes(同意协议)

刷新环境变量

source ~/.bashrc

如果运行后出现(base)则表示miniconda安装成功

配置环境变量

vim ~/.bashrc
#增加 export  PATH="/root/miniconda3/bin:"$PATH
source ~/.bashrc

channels

可以先在浏览器里试试这些链接能否打开

conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

conda config --set show_channel_urls yes # 这样以后下载的时候会显示这个包来自哪个源
conda config --get channels  # 查看现在的channesl (会自动显示优先级,最后add的优先级最高)

export PATH=$PATH:/home/yuqiao/miniconda3/bin

安装tmux

apt-get install tmux

安装一些图形驱动(用于处理以下报错)

apt install libgl1-mesa-glx # ImportError: libGL.so.1: cannot open shared object file: No such file or dir
apt-get install libxrender1 # ImportError: libXrender.so.1: cannot open shared object file: No such file or directory

pip设置为清华源或阿里云

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

sshfs docker云盘相关

sshfs docker插件安装:

docker plugin install ucphhpc/sshfs

docker plugin install vieux/sshfs

这两个中vieux快但不维护了;ucphhpc还在维护但慢一些

创建云盘:密码建议cat;直接输需要单引号

docker volume create -d ucphhpc/sshfs -o sshcmd=REMOTE_USER@REMOTE_IP:REMOTE_PATH -o port=REMOTE_PORT -o password=$(cat .yq_pwd) -o allow_other -o reconnect -o ServerAliveInterval=15 VOLUME_NAME

docker volume create -d vieux/sshfs -o sshcmd=yuqiao@XX:/home/yuqiao/docker_home -o port=22 -o password=‘your_pass_word’ -o allow_other -o reconnect -o ServerAliveInterval=15 sshfs-volume-datazoo

保存和重载容器

commit和export二选一

docker commit dockerid
qiao_rfd_conda_commit # 可回滚,最后的参数是镜像的名字,可以直接run它,不需要import
docker export -o /qiaodisk/qiaoRfdConda.tar dockerid # 完全clean的新镜像,需要import之后才能run # 7.6G
scp -P 22  qiaoRfDConda_old.tar yuqiao@XXX.XX.XX.XX:/home/yuqiao/ # 移动到另一台设备

# 在另一台设备
docker import /qiaodisk/qiaoRfdConda.tar qiao_rfd_conda2:xxx
#docker run --privileged -it -p 50003:22 -v /qiaodisk/tfDocker:/home/yuqiao -w /home/yuqiao -d --name qiao_conda qiaorfd /bin/bash
#docker run --privileged -p 10108:6006 -p 10109:22 -it -d -v /qiaodisk/tfDocker:/home/yuqiao -w /home/yuqiao -e DISPLAY=:10.0 -e GDK_SCALE -e GDK_DPI_SCALE --name qiao_rfd_conda qiao_rfd_conda /bin/bash   
docker run --privileged --gpus all --shm-size 8G -p XXXXX:6006 -p XXXXX:22 -it -d -v ~/docker_home:/home/yuqiao -w /home/yuqiao --name qiao_rfd_conda qiao_rfd_conda /bin/bash  #dockerid

# 如果报错: docker: Error response from daemon: No command specified.
# 用下面这个命令查看command:
docker ps  --no-trunc
# 然后把查看到的command放到docker run的最后(代替/bin/bash)

查看云盘

docker volume ls

创建容器:

docker run --privileged --gpus device=all --shm-size 125G -p 宿主端口XX:容器端口6006 -p 宿主端口YY:容器端口22 -it -d -v sshfs-volume-datazoo:/home/yuqiao/ -w /home/yuqiao --name 容器名称 镜像名称:v1 bash

相关推荐

  1. conda环境问题合集

    2024-05-16 10:54:07       39 阅读
  2. Windows下深度学习环境

    2024-05-16 10:54:07       15 阅读
  3. conda配置tensorflow环境+jupyter

    2024-05-16 10:54:07       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-16 10:54:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-16 10:54:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-16 10:54:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-16 10:54:07       18 阅读

热门阅读

  1. Scala学习3: 字符串

    2024-05-16 10:54:07       11 阅读
  2. 教你拥有一个优雅的 Controller

    2024-05-16 10:54:07       11 阅读
  3. 【分布式】zookeeper遇到问题与解决

    2024-05-16 10:54:07       12 阅读
  4. Kotlin高阶函数用法之一

    2024-05-16 10:54:07       10 阅读
  5. 谈谈 HTTP 的方法

    2024-05-16 10:54:07       10 阅读