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 stopdocker 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.