update 20200804
测试环境 :
- Docker 19.03版本
- GPU 2080Ti
启动容器的方式, 假设容器叫做nv_xxx
sudo docker run --gpus all -itd -p 23:22 nv_xxx:latest
每次启动ssh需要重新开启, 这样才能远程连接
sudo /etc/init.d/ssh start
如果要使用conda环境, 每次启动都要激活
cd /root/miniconda3/bin
. ./activate #注意这边的确是两个点
依照以下流程开始走
主要是让Docker支持GPU
现在本地安装nvidia container tookit
参考 https://github.com/NVIDIA/nvidia-docker
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
然后启动
#### Test nvidia-smi with the latest official CUDA image
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
#会自动下载nvidia这个镜像
# Start a GPU enabled container on two GPUs
docker run --gpus 2 nvidia/cuda:10.0-base nvidia-smi
# Starting a GPU enabled container on specific GPUs
docker run --gpus '"device=1,2"' nvidia/cuda:10.0-base nvidia-smi
docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:10.0-base nvidia-smi
# Specifying a capability (graphics, compute, ...) for my container
# Note this is rarely if ever used this way
docker run --gpus all,capabilities=utility nvidia/cuda:10.0-base nvidia-smi
上面指令会自动pull nvidia的镜像, nvidia/cuda:10.0-base
后续要启动的话,
sudo docker run --gpus all -itd nvidia/cuda:10.0-base
接着以下开始配置镜像, 也就是安装自己需要的东西
参考https://blog.csdn.net/u012308586/article/details/102953882
- 备份原始源文件source.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 修改源文件sources.list
sudo chmod 777 /etc/apt/sources.list #更改文件权限使其可编辑
sudo vim /etc/apt/sources.list #记得先安装vim
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
-
最后更新一下源
sudo apt update
apt-get gcc
apt-get g++
apt-get install automake autoconf libtool make
apt-get install cmake
apt-get install git
#先按装
apt-get install zlib*
sudo apt-get install libffi-dev
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
tar -zxvf Python-3.7.1.tgz
cd Python-3.7.1
./configure --prefix=/usr/local/python3.7.1
make
make test
sudo make install
可执行文件会在/usr /local/python3.7.1/bin
PATH=$PATH:$HOME/bin:/usr/local/python3.7.1/bin
vim ~/.bashrc
添加 export PATH=$PATH:$HOME/bin:/usr/local/python3.7.1/bin
source ~/.bashrc
python3 #测试一下有没有进入python的交互环境
安装pip3
apt-get install python3-pip
安装好直接修改pip源, 替换成阿里源
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
apt-get install openssh-server
passwd root #设置密码为了让ssh远程登入的时候 要输入验证
#假设密码设置为xxx
xxx
xxx
vim /etc/ssh/sshd_config #进行修改
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录
service ssh restart
sudo /etc/init.d/ssh start
完成以上几步后,本机地址是127.0.0.1
在container中安装好ssh之后, 下次启动容器的时候, 用如下指令
sudo docker run -itd -p 16022:22 xxx::latest
也就是设置端口号
然后如下两种方式远程连接到docker中
第一种 本地电脑连接本地docker如下
pycharm 连接的时候或者用ssh连接
ssh [email protected] -p 16022
然后输入使用者密码就能登入
第二种 局部网电脑远程(wifi)连接本地docker
在本机利用
ifconfig -a
查看enp3s0下的
Inet 地址是为何 比如是192.168.1.8
然后一样外部的电脑中的pycharm设置ssh 连线
SFTP
[email protected] 端口设置16022
就能远程连线
2375端口
把cuda 跟 cudnn 安装压缩包放置到home下, 然后
sudo sh cuda_10.0.130_410.48_linux.run
//注意 ! 如果遇到空间不足在用以下的方法
sudo sh cuda_10.0.130_410.48_linux.run --tmpdir=/home
#会遇到如下问题
1. EULA? accept
2. driver? no
3. cuda10.0 toolkit? yes
4. localtion /usr/local/cuda-10.0 ? 直接回车
5. symbolic yes
6. install samples ? no
vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
source ~/.bashrc //最后更新一下
nvcc -V #如果有效果就表示安装成功
解压缩cu
得到cuda文件夹, 将里面的Include/ 以及 lib64/下的内容丢到/usr/local/cuda/下对应的文件夹下面就完成
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
./Miniconda3-latest-Linux-x86_64.sh
安装好之后 直接输入conda 是command not found, 需要激活一下
找到安装路径
/root/miniconda3/bin
chmod 777 activate
. ./activate #注意有两个点 之间还有空格
激活之后, 前面会出现base , 这就表示已经进入的conda环境
(base) root@xxxxxxx: