포스트

Docker 기초 이론 및 사용법

Docker 란 무엇인지에 대해서와, Docker 에 관련된 기초 Command 를 정리


Docker

Docker란

  • 리눅스 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼
  • 다양한 운영체제에서 사용 가능
  • 애플리케이션에 국한되지 않고 의존성 및 파일 시스템까지 패키징하여 빌드, 배포, 실행을 단순화

Docker의 특징

1) 애플리케이션의 이미지화

  • 컨테이너를 생성하기 위해 이미지 필요
  • 환경을 교체, 업데이트 하기 용이

2) 자원관리

  • 컨테이너를 삭제하면 모든 데이터가 초기화
  • 업로드 파일 별도의 저장소 필요

3) 확장성/이식성

  • 도커가 설치되어 있다면 어디서든 컨테이너실행 가능

4) 표준성

  • 컨테이너라는 표준으로 배포하여 모든 서비스들의 배포과정 동일

Docker Command

  • docker search <이미지명> : Dockerhub에서 이미지 검색
  • docker pull <이미지명> : Dockerhub에서 이미지 가져오기
  • Dockerfile 을 이용한 이미지 생성
    • docker build [옵션] <경로>
    • 주 사용 옵션 : -t 태그 추가
1
docker build -t example_image .
  • docker rmi <이미지ID 또는 명> : 이미지 삭제
  • docker images -a : 이미지 조회
  • docker commit <컨테이너 ID 혹은 명> <이미지명:태그> : 실행한 컨테이너를 이미지로 변경
  • docker push <dockerhub 계정 혹은 private registry url>/<이미지명:태그> : 이미지 업로드
1
2
3
4
# 사내 nexus 업로드 (예전 버전일 수도 있음)

docker tag <기존이미지명>:<태그명> nexus_address/<변경이미지명>
docker push nexus_address/<변경이미지명>

Docker Container Command

  • docker run [옵션] --name <컨테이너 이름><이미지 repository> : 컨테이너 생성 후 실행
    • 주 사용 옵션
      • -it : 터미널을 상호작용 모드로 실행
      • -d : 컨테이너를 백그라운드에서 실행
      • --name : 컨테이너에 사용자가 지정한 이름을 부여
      • -p <호스트포트>:<컨테이너포트> : 호스트와 컨테이너 간의 포트 포워딩 설정
      • --net=<네트워크 이름> : 컨테이너가 사용할 네트워크를 지정
      • -e <환경변수이름>=<값> : 컨테이너 내부에서 사용할 환경변수를 설정
      • --gpus : GPU 리소스를 컨테이너 할당 (NIVIDA GPU 사용 시 필요)
1
2
3
# 임시로 컨테이너 내부를 확인하는 방법 (컨테이너 종료시 자동삭제)
# 이때 -d 인자는 주면 안됨
docker run -it --rm <컨테이너이름>
  • docker create [옵션] --name <컨테이너 이름><이미지 repository> : 컨테이너 생성
  • docker ps -a : 컨테이너 조회
  • docker rm <컨테이너 ID 혹은 명> : 컨테이너 삭제
  • docker rmi <이미지 ID 혹은 명> : 이미지 삭제
  • docker start or stop
  • docker exec -it <컨테이너ID 혹은 명> /bin/bash : 실행중인 컨테이너 접속

  • docker save -o 파일_이름.tar 이미지_이름 : 도커 엔진 저장
  • docker load -i ~~.tar : 도커 엔진 load
Google AdSense — Post Ad
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Comments powered by Disqus.