Docker

이승우·2025년 3월 4일

1️⃣Dockerfile → docker build → 2️⃣ Docker 이미지 → docker run → 3️⃣ Docker 컨테이너

Container Registry

로컬에서 이미지를 만들어서 컨테이너 레지스트리에 푸쉬하고 다른 서버나 pc에 풀, 실행

  • 컨테이너 레지스트리 종류
    public: docker hub, github Packages
    private: aws, Google Cloud, Microsoft Azure

docker registry에서 이미지를 사용하려면 pull

우분투에서

  • apt-get: 시스템에서 사용 가능한 패키지에 대한 설치, 패키지 검색, 업데이트 및 기타 여러 작업을 수행
  1. nvidia-smi로 gpu 정보 얻기 (모델명, driver 버전 등)
  2. Driver version에 따른 사용 가능한 CUDA 버전 알아보기
  3. GPU Capability에 따른 사용 가능한 CUDA 버전 알아보기
  4. 필요한 PyTorch 버전에 따른 CUDA 버전 알아보기

도커 설치

  1. apt 업데이트

    sudo apt update

  • 기존 패키지에 맞춰 최신화
  1. 도커 사용을 위한 패키지 설치

    sudo apt install apt-transport-https
    sudo apt install ca-certificates
    sudo apt install curl
    sudo apt install software-properties-common

  • apt-transport-https : https를 통해 데이터나 패키지에 접근할 수 있다. (링크)
    ca-certificates : Certificate Authority - certificates라는 뜻으로 SSL기반 웹 애플리케이션이 SSL연결의 진위여부를 판별할 수 있게 해준다.
    curl : 링크로 데이터를 다운 받을 수 있게 해주는 도구
    software-properties-common : 우분투에서 PPA를 사용하기 위한 패키지
  1. 도커의 공식 gpg키 추가

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  • | : 파이프라인. 한 명령어에서 나온 결과값을 다음 명령어에 넣어준다.
    sudo apt-key add - : 패키지 키를 추가한다
  1. Docker의 공식 apt 저장소를 추가

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

  2. apt 업데이트

    sudo apt-get update

  3. Docker 설치 [도커엔진-CE(Community Edition)]

    sudo apt-get install docker-ce docker-ce-cli containerd.io

  4. 도커 실행상태 확인

    sudo systemctl status docker

  5. 도커 실행

    sudo docker run hello-world

  • docker run: 로컬에 해당 이미지 없으면 Docker Hub에서 다운로드(pull) 후 실행
  1. 도커 그룹에 사용자 추가

    sudo usermod -aG docker $USER
    newgrp docker

드라이버 설치

  • Ubuntu에서 자동으로 드라이버를 관리

    sudo apt-get update
    sudo apt install -y ubuntu-drivers-common

  • gcc compiler 사용가능한 development tools 설치

    sudo apt install build-essential

  • 사용가능한 드라이버 확인

    sudo ubuntu-drivers devices

  • 드라이버 설치

    sudo apt install nvidia-driver-525
    sudo reboot
    nvidia-smi #드라이버 확인

이미지 빌드

  1. 도커파일 이동

    mv {도커파일 위치} {내 위치(pwd)}

  2. 도커파일 내용 확인

    vi Dockerfile

  3. 이미지 빌드

    docker build --tag lswdocker:0.1 .

도커 포트포워딩

docker run -d -p 8080:80 nginx

ex) jupyter: 8888

  • -d: 컨테이너를 백그라운드에서 실행
  • -p: 외부에서 접근할수 있도록 포트 매핑. [호스트포트]:[컨테이너포트]

도커 컨테이너 명령어

  1. docker ps -a: 컨테이너 상태 확인
  2. docker run <옵션> <이미지 이름> <명령어>: 컨테이너 생성, 실행
  3. docker start <컨테이너 이름 또는 ID>: 컨테이너 실행
  4. docker stop <컨테이너 이름 또는 ID>: 컨테이너 중지
  5. docker rm <컨테이너 이름 또는 ID>: 컨테이너 삭제

도커 옵션

-it: 인터랙티브 모드(쉘 모드)

0개의 댓글