핀아의 저장소 ( •̀ ω •́ )✧

[Docker ]Docker 기본 본문

Computer Science/Tools

[Docker ]Docker 기본

_핀아_ 2023. 5. 16. 16:51

Docker의 간단한 설명과 기본 사용법에 대해 소개하고자 한다.

 

Docker

  • Docker는 Container 기반의 오픈 소스 가상화 플랫폼이며 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있다.
  • Docker ImageContainer 실행에 필요한 파일과 설정 값 등을 포함하고 있는 파일
  • ContainerImage Build 과정을 거쳐 메모리에 올리고 Run을 통해 동작하는 프로세스이다.

Docker Hub

  • Docker에서 제공하는 Docker Image 저장소
  • 다양한 Base Image를 제공한다.
  • Pull/Push를 통해 Base Image를 다운로드 받거나 새롭게 생성 혹은 수정된 커스텀 이미지를 Docker Hub에 업로드 할 수 있다.
  • Pull만 사용한다면 별도의 가입 과정 없이 사용할 수 있지만, Push를 하기 위해선 가입이 필요하다.
  • Private Repo를 구성하여 Docker Hub를 구축 할 수 있다.
  • https://hub.docker.com/
 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

 

Docker 기본 명령어

 Docker 이미지 생성 _ build

docker build -t (생성시 정할 이미지명) .

Docker 이미지 불러오기 _ pull

docker pull [options] image:tag
  • tag는 생략 가능하며 생략시 최근 업데이트 된 이미지를 다운로드 한다.
  • 해당 명령어를 통해 도커 허브로부터 도커 이미지를 다운로드 받을 수 있다.
    • ) Ubuntu 20.04 이미지 다운로드

✅ Docker 이미지 확인 _ images

docker images [options]
  • 해당 명령어를 통해 로컬에 존재하는 도커 이미지의 정보를 출력한다.

Docker 실행 _ run

docker run [options] image:tag
  • 해당 명령어를 통해 도커 이미지로 컨테이너를 만들어서 실행한다.

🎃 이미 설치 된 이미지가 있을 때 컨테이너 실행 명령어

docker run -t -d --name (컨테이너 이름) --gpus (gpu 사용 번호) (사용할 이미지 이름)

ex) 

docker run -t -d --name testbert --gpus "device=1" classification

docker run -t -d --name testbert --gpus all classification

🎃 volume 연결 version

docker run <option> -v <host-route>:<container-route> <image-name>

ex)
docker run -t -d --name test01 --gpus all -p 7788:8003 -v $(pwd):/app test01
docker run -t -d --name test02 --gpus all -p 8008:8008 -v /home/dir/data/model:/app/data/model -v /home/dir/data/ocr:/app/.tmp test02
  • gpus all 안 하면 gpu 사용 안 됨
  • volume 설정 시 연동하고 싶은 폴더 뒤에 / 붙이면 연동 안 됨

 

✅ Docker container 확인 _ ps

docker ps [options]

# 전체 컨테이너 확인
docker ps -a
  • 해당 명령어를 통해 컨테이너의 정보를 확인 할 수 있다.
  • 옵션을 통해 비가동중인 컨테이너 정보 또한 출력할 수 있다.

Docker container 접속 _ exec

docker exec [options] container [command]
  • 해당 명령어를 통해 실행중인 컨테이너에 명령어를 입력할 수 있다.
    • ) 생성한 우분투 컨테이너에 bash 명령어를 입력

✅ inspect

docker inspect [options] container|image
  • 해당 명령어를 통해 도커 개체에 대한 low-level 정보를 확인할 수 있다.

✅ Docker 컨터이너 멈추기 _ stop

docker stop [options] containers
  • 해당 명령어를 통해 실행중인 컨테이너를 종료한다.

Docker 컨터이너 삭제 _ rm

docker rm [options] containers
  • 해당 명령어를 통해 컨테이너를 삭제한다.

Docker 이미지 삭제 _ rmi

docker rmi [options] images
  • 해당 명령어를 통해 로컬에 있는 도커 이미지를 삭제한다.

Docker 이미지 복제 _ commit

docker commit [options] container image:tag
  • 해당 명령어를 통해 작업중인 컨테이너를 기반으로 새로운 도커 이미지를 생성한다.

가동중인 Docker container 접속 _ attach

docker attach {컨테이너 이름 또는 ID}
Comments