반응형
[1] docker hub에서 cuda11.2, cudnn8, centos7환경의 이미지를 받아온다.
(=누군가 CentOS7 을 내 컴에 깔고, CUDA11.2와 cuDNN 8 버젼을 깔아준 셈)
sudo systemctl start docker
docker pull nvidia/cuda:11.2.0-cudnn8-devel-centos7
[2] docker run, 설치가 완료된 컴퓨터를 켜준다.
--name : 이름(원하는걸로 설정)
-e : 추후 opencv로 imshow 할 경우 디스플레이 화면에 팝업으로 보여야 하기 때문에 설정해줌(그대로 복붙)
-v /tmp/.X11-unix:/tmp/.X11-unix --privileged : docker와 내 컴이 서로 display볼륨을 공유하기위해서 설정
-v $(pwd):/workspace/ : 터미널 현재 내 경로와 도커 내부의 /workspace 경로에 마운트(공유)하겠다는 의미
nvidia/cuda:11.2.0-cudnn8-devel-centos7 : 아까 다운(pull)받은 이미지
bin/bash : 커멘드 환경으로 열겠다는 의미
docker run -it --gpus all\
--name darknet\
-e DISPLAY=unix$DISPLAY\
-v /tmp/.X11-unix:/tmp/.X11-unix --privileged \
-v $(pwd):/workspace/ \
nvidia/cuda:11.2.0-cudnn8-devel-centos7 \
bin/bash
docker run -it --gpus all --name VAS_BCT_1 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --privileged -v $(pwd):/workspace/ nvidia/cuda:11.2.0-cudnn8-devel-centos7 bin/bash
[3] CUDA, cuDNN까지 모두 설치되었으니, darknet을 구동하기 위한 나머지 설치를 진행.
[3.1] python, opencv를 비롯한 기본 설치
cd home
mkdir dpw
cd dpw
mkdir code
cd code
yum install -y git
yum install -y python3
yum install -y opencv opencv-devel opencv-python
yum install -y unzip
yum install -y wget
pip3 install --upgrade pip
pip3 install numpy
pip3 install opencv-python
pip3 install scipy
pip3 install requests
pip3 install jaydebeapi
pip3 install flask
pip3 install gputil
[3.2] darknet build
cd /home/dpw
git clone https://github.com/AlexeyAB/darknet.git
cd darknet
wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
rm -rf Makefile src
wget https://download1519.mediafire.com/qwucdfme9sjg/9ojvtrubbdz91ad/Makefile
wget https://download1650.mediafire.com/724z80csd3mg/8nprui37b114w8a/src.zip
unzip src.zip
make
xhost +
docker 빠져나오기
exit
[4] 여기까지 설치한 그대로 박제해서 docker image로 만들기
[4.1] 컨테이너 조회
docker ps -a
[4.2] 박제할 컨테이너 지정 및 이미지 이름:태그 설정
docker commit <contianer id> cuda/cudnn/darknet:v1.0
[4.3] 잘 박제되었는지 확인
docker images
[4.4] 도커 허브에 업로드하기
https://nicewoong.github.io/development/2018/03/06/docker-commit-container/
[5] Darknet 테스트 예제 구동
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg
[6] 나중에 다시 접속하기
docker start darknet
docker attach darknet # 컨테이너 내부로 들어옴
cd home/dpw/darknet
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg
[7] docker 내부에서 ifconfig 안먹힐 때 bash: ifconfig: command not found
yum -y install net-tools
반응형
'도커(docker)' 카테고리의 다른 글
도커 docker 컨테이너 내부에 로컬폴더 마운트 방법 (0) | 2022.02.23 |
---|
댓글