[docker] docker 명령어 정리

JINJU·2022년 10월 19일
0

회사 내에서 학습시키기위해 도커를 사용하여서 서버사용하는데 정리가 필요해서 적어봄.

Docker?

컨테이너 기반의 오픈소스 가상화 플랫폼

Image

  • 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행파일 묶는 형태
  • 회사 문서에 보면 "붕어빵을 찍어내는 빵판"과 같은 의미

Container

  • 이미지를 실행한 상태, 응용프로그램의 종속성과 함께 응용프로그램 자체를 패캐징 or 캡슐화하여 격리된 공간에서 프로세스를 동작시키는 기술
  • 회사 문서에 보면 "붕어빵 판에서 찍어낸 붕어빵"과 같은 의미

명령어

  • 내가 서버 내에서 사용하는 명령어만 정리함

image 가져오기

방식은 두가지가 존재함.
1. npg 를 사용
2. pull 사용

pull 하는 법

docker hub 에서 원하는 환경을 pull 하면 됨.
나 같은 경우는 pytorch/ cuda 11버전 / cudnn 을 원했음.

pytorch/cuda11/cudnn8에 맞는 docker image를 찾고 pull 해주면됨.

sudo docker pull pytorch/pytorch:1.8.1-cuda11.1-cudnn8-devel

image 확인

sudo docker images

container 실행

sudo docker run --gpus all -it -d -v (마운트할 폴더) -p 8097:8097 --ipc=host --name (container 이름설정) (image id) /bin/bash

예를 들어서,

sudo docker run --gpus all -it -d -v /media/hdd/jinju/shared:/media/hdd/jinju/shared -v /media/hdd/jinju/data:/media/hdd/jinju/data -p 8097:8097 --ipc=host --name jj-pytorch 7afd9b52a068 /bin/bash

여기서 port는 tensorboard 사용하기 위해서 사용함.
port를 설정해야 학습진행사항 확인할 수 있는 tensorboard 가능함.

container 실행확인

현재 실행된 container 확인

sudo docker ps

전체 container 뭐가 있는지 확인

sudo docker ps -a

container 들어가기

sudo docker exec -it (container name) /bin/bash/

예를 들어

sudo docker exec -it jj-pytorch /bin/bash/

각 파라미터들은 무엇을 의미하는지는 각자가 알아보면 좋을 것 같다.
docker 개념이 어려웠었는데 몇번 사용하다보니 감을 잡았다.
정리하니 더 확실히 좋다.

Reference

https://hoon93.tistory.com/48

0개의 댓글