TIL
[Docker] 기초부터 이미지 배포까지 Docker 사용법
씨주
2024. 4. 24. 10:13
📌 Docker
Image
애플리케이션을 실행하기 위한 환경
현재 이미지 확인
docker images
이미지 삭제
docker rmi [이미지 name]
# container 삭제 전 이미지 삭제
docker rmi -f [이미지 name]
이미지 pull
docker pull [이미지 name]
이미지 이름과 tag는 ':' 로 구분된다.
따라서 현재 centos는 centos:latest 인 것을 확인할 수 있다.
Container
container를 실행하기 위해서는 1. 이미지를 pull 받고 2. 이 이미지를 통해 container를 실행한다.
따라서 container를 실행하기 위해서는 반드시 이미지가 있어야 한다.
또한 컨테이너에 변경사항이 생겨도 이미지에는 변화가 생기지 않는다.
현재 실행중인 모든 컨테이너 목록 출력
sudo docker ps
실행하지 않은 컨테이너를 포함한 모든 컨테이너 목록 출력
sudo docker ps -a
sudo 명령어 없이 docker 명령어 바로 사용 가능하게 설정
sudo usermod -aG docker $USER
sudo su - $USER
컨테이너 실행
# docker run -it [이미지 name:tag] [명령어]
docker run -it centos:latest bash
# 다른 터미널
sudo docker ps
컨테이너를 재실행
docker restart 6c9f29082100
docker ps
restart 후 터미널 상에서 컨테이너 안으로 들어가기(터미널 상에서 입출력 주고받기)
docker attach 6c9f29082100
Dockerfile로 이미지 만들기
1. dockerfile을 저장할 directory만들기
mkdir dockerfile
cd dockerfile
2. Dockerfile 생성
touch Dockerfile
3. Dockerfile 작성
nano Dockerfile
# CUDA 및 cuDNN 포함 베이스 이미지
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
ctrl + o
Enter
ctrl + x
4. docker image build
# docker build -t [이미지이름:태그] .
docker build -t hjsystem .
5. 컨테이너 실행 후 환경 확인
docker run -it --gpus all hjsystem
참고) docker hub
https://hub.docker.com/r/nvidia/cuda/tags
앞서 배운 바와 같이 공식 배포된 docker hub에서 필요한 image pull해서 사용하는 방법도 있다.
1. pull
docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
이 때 devel(개발환경), runtime(실행환경)으로 나뉘는데 이미 학습된 모델을 inference할 때만 쓴다면 runtime 그 외는 devel을 쓰면 될 듯하다.
2. 실행
docker run -it nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04