[Docker] Docker

yoonseok choi·2022년 8월 23일
1

AWS

목록 보기
7/11

Docker

Build once , Run Anywhere
  -> 애플리케이션을 개발, 제공 및 실행하기 위한 개방형 플랫폼.
    -> 어떤 환경에서도 ML model을 실행 할 수 있도록 하는 것을 의미한다.
    -> java가 모든 환경에 적용 가능하게 된 것 처럼.


Container

애플리케이션을 패키징 및 실행 할 수 있는 기능을 제공하며, 격리 및 보안을 통해 하나의 호스트에서 여러 컨테이너를 동시에 실행 가능하다.
- 애플리케이션을 배포하고 테스트하는 단위

Docker Overview

  • Client : Dokcer에 명령어를 전송하는 사용자.

  • Image: containers에 실행에 필요한 정보가 담겨있는 파일.
    - containers의 정보를 snapshot으로 저장

  • Container : Image를 불러와서 메모리를 할당하여 os가 활성화된 상태
    - 서버 실행 = container가 image를 불러와서 실행된 상태

  • Registry : docker_hub와 같이 docker image를 등록해두는 곳 (ex. AWS,GCR)


Docker 명령어 ( 1 )

docker pull : docker image repository 부터 Docker image 를 pull

docker images : 로컬에 존재하는 docker image 리스트를 출력

docker ps : 현재 실행중인 도커 컨테이너 리스트를 출력

docker run : 도커 컨테이너를 실행
ex) docker run -it --name demo1 ubuntu:18.04 /bin/bash
	- it: container 를 실행시키고 terminal로 접속
	-  --name: 컨테이너 id (9802839)를 구분하기 쉽도록 yoon1 과 같이 이름을 지정
	- /bin/bash : 컨테이너를 실행시킴과 동시에 실행할 커맨드 bash 터미널을 사용하는 것을 의미
    
docker exec : Docker 컨테이너 내부에서 명령을 내리거나, 내부로 접속

docker logs : 도커 컨테이너의 log 를 확인

docker stop : 실행 중인 도커 컨테이너를 중단

docker rm : 도커 컨테이너를 삭제

docker rmi : 도커 이미지를 삭제

Docker 명령어 ( 2 )


FROM : base image로 어떠한 image를 사용할 것인지 명시
-FROM ubuntu:18.04

COPY : <src>file or directory를 <dest>경로에 복사
- COPY dir1/dir2

RUN : 명시한 커맨드를 docker container에 실행
 -RUN ["executable-command", "parameter1", "parameter2"]
 -RUN pip install -r requirements.txt 
 
CMD : docker container가 시작될 때 실행 ( = ENTRYPOINT
- CMD python helloworld.py

WORKDIR : container 내의 어떤 디렉토리에서 수행할 것인지 명시
- WORKDIR /path/to/workdir

ENV : container 내부에서 지속적으로 사용될 env variable 값을 설정
- ENV LANGUAGE ko_KR.UTF-8

EXPOSE : container에서 port/protocol을 지정
- EXPOSE <port>/<protocol>

Docker build

docker build -t example:v1.0.0 .
#1.0.0 . : dot을 꼭 써주어야함
#example (name) , v.1.0.0 (tag)

docker run my-image:v1.0.0 
#실행

Docker Registry

docker run -d -p 5000:5000 --name registry registry
docker tag yoon:v1.0.0 localhost:5000/yoon:v1.0.0

profile
Concilio et Labore ( 지혜와 노력으로 )

0개의 댓글