1、建立Docker容器,指定Shm共享記憶體。
docker run -d -it --name yolov5 --gpus all -p 20000:22 --shm-size 16g dockerproxy.cn/nvidia/cuda:12.2.0-devel-ubuntu22.04
2、進入容器,升級安裝器apt
docker exec -it f7383b766c6d /bin/bash
apt-get update
apt-get install vim
3、安裝ssh連線,並設定密碼、開機啟動
apt-get install openssh-server
passwd
新增root連線許可權
vim /etc/ssh/sshd_config
註釋這一行PermitRootLogin prohibit-password
新增一行PermitRootLogin yes
然後儲存退出,重啟服務
/etc/init.d/ssh restart
在 /root 目錄下新建一個 start_ssh.sh檔案,並給予該檔案可執行許可權
vim /root/start_ssh.sh
指令碼內容為
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
chmod +x /root/start_ssh.sh
將start_ssh.sh指令碼新增到啟動檔案中
vim ~/.bashrc
# startup run
if [ -f /root/start_ssh.sh ]; then
/root/start_ssh.sh
fi
source ~/.bashrc
4、設定CUDA環境變數
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
source ~/.bashrc
5、測試CUDA可用性
nvidia-smi
nvcc -V
6、安裝Python3.8.10
安裝底層包
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
apt-get install lzma
apt-get install liblzma-dev
apt-get install libbz2-dev
下載Python-3.8.10.tar.xz,並複製至容器中,解壓安裝
tar xvJf Python-3.8.10.tar.xz
cd Python-3.8.10
./configure --enable-optimizations
make
make install
測試版本
python3 -V
找到容器中原有Python3對應的bzip2 的 .so 檔案_bz2.cpython-36m-x86_64-linux-gnu.so,我的是在3.6環境下安裝的因此位置在 /usr/lib/python3.6/lib-dynload/ 下,將對應的 .so 檔案 複製python3.8 對應的目錄下(我的是/usr/local/lib/python3.8/lib-dynload/ 需要根據你自己安裝的位置尋找)
並將檔名中“36m” 修改為 “38” 即可。
tips:(find命令) find (目錄起點) -name 加上檔名 查詢檔案比較快
可以使用whereis python3 來找到系統預設的python 環境的位置。
7、安裝git並拉取yolov5程式碼,此時tag為7.0
apt-get install git
mkdir /project
cd /project
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
8、安裝pytorch,因為此時在容器內部,所以不再安裝虛擬環境,pytorch與torchvision版本選取如下,下載複製安裝即可
pip3 install /work/torch-2.3.0+cu121-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install torchvision-0.18.0+cu121-cp38-cp38-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
9、安裝其他依賴,安裝前,使用vim開啟requirements.txt,將torch與torchvision註釋,因為這是cpu版本
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
安裝額外依賴
pip3 install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple
10、設定gpu可見性環境變數
vim ~/.bashrc
export CUDA_VISIBLE_DEVICES=0
source ~/.bashrc