赞
踩
不包括在宿主机安装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直接连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虚拟环境。
Linux python环境配置之第三方库的安装
好的链接失效了。
注意记住配好的虚拟环境的路径,需要的时候可以整体转移。重新下载这些包是非常非常慢的。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
注意,需要阅读协议,大多数地方要按ENTER,少部分地方要输入yes(同意协议)
source ~/.bashrc
如果运行后出现(base)则表示miniconda安装成功
vim ~/.bashrc
#增加 export PATH="/root/miniconda3/bin:"$PATH
source ~/.bashrc
可以先在浏览器里试试这些链接能否打开
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
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 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
查看已安装插件:
docker plugin ls
安装插件:
docker plugin install ucphhpc/sshfs
docker plugin install vieux/sshfs
这两个中vieux快但不维护了;ucphhpc还在维护但慢一些
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。