docker command 정리

jihyelee·2023년 12월 19일
0
  • 도커란, 응용 프로그램(application)을 컨테이너로 실행하고 관리할 수 있도록 도와주는 오픈 소스 플랫폼
  • 컨테이너란, 코드와 코드에 필요한 디펜던시(dependency)를 패키지로 묶은 표준 소프트웨어 단위로, 어떠한 컴퓨팅 환경에서도 빠르게 응용 프로그램을 실행할 수 있도록 도와줌
  • 컨테이너 이미지란, 응용 프로그램을 실행할 때 필요한 모든 것들(코드, 런다임, 시스템 도구, 시스템 라이브러리, 환경 등)을 포함한 소프트웨어 패키지
    • 런타임에 컨테이너가 됨 (도커 엔진에서 실행될 때)

Docker의 기본적인 생명주기

  • docker image를 container로 만들어 실행, 원하는 동작이 마무리되면 container 종료
  • docker run 관련 명령어와 python3 filename.py와 같은 명령어를 shell script로 작성해 컨테이너를 띄움
  • 컨테이너에 쓰여진 데이터는 기본적으로 컨테이너가 삭제될 때 함께 사라지게 됨

docker build

  • Dockerfile -> image
  • 도커 이미지 설정 파일인 Dockerfile을 통해 도커 이미지를 만들 때 docker build 명령어를 사용

docker commit

  • container -> image
  • 실행 중인 컨테이너를 수정한 후 해당 컨테이너로 도커 이미지를 만들 때 docker commit 명령어를 사용

docker save

  • image -> tar
  • docker build, commit이 docker hub 와 같은 registry에 push되고 pull받는 방식으로 사용된다면, docker save는 registry를 거치지 않고 docker image를 이동시킬 때 사용
  • 도커 이미지 혹은 컨테이너를 tar 파일로 만들 때 docker save 활용
  • tar 파일을 다시 docker image로 되돌리기 위해 docker load 사용

docker export

  • container -> tar
  • docker container를 tar파일로 저장할 때 docker export 활용
  • docker export로 만들어진 tar파일을 되돌릴 때 docker import 사용

Docker 컨테이너 생명주기와 관계없이 데이터를 영속적으로 저장하는 방법

volume

  • docker에서 권장하는 방법 (docker 상에서 이미지, 컨테이너, 네트워크와 비슷하게 관리됨)
  • docker volume create
    • 볼륨 생성
  • docker volume rm
    • 볼륨 삭제
  • docker volume prune
    • 마운트되어 있지 않은 모든 볼륨 삭제 가능
  • docker run -v 볼륨명
    • 컨테이너 내 경로 명령어로 실행 (docker area와 컨테이너 연결)
  • 여러 개의 컨테이너가 하나의 볼륨에 접근할 수 있기 떄문에 컨테이너 간 데이터 공유 가능

bind mount

  • 호스트 파일 시스템의 특정 경로를 컨테이너로 바로 마운트 가능
    • docker volume: docker area를 마운트
  • docker run -v 호스트 경로:컨테이너 내 경로 명령어로 실행
  • 컨테이너화된 로컬 개발환경 구성 시에 유리
    • 디렉터리를 컨테이너의 특정 경로로 마운트해서 코드 실행, 로컬의 변경 사항은 git 등으로 관리 가능

관련 링크 (link1, link2)

profile
Graduate student at Seoul National University, majoring in Artificial Intelligence (NLP). Currently AI Researcher at LG CNS AI Lab

0개의 댓글