Docker 부수기

2022. 6. 13. 18:20ETC/Server

내용출처 : https://docs.docker.com/get-started/

 


Part1. Getting started


여기서 배울내용

  • 이미지를 컨테이너로 Build 및 Run 하는것
  • Docker Hub를 사용해서 이미지를 공유하는 것
  • DB를 가지고있는 여러 개의 컨테이너를 사용해서 Docker application을 배포하는 것
  • Docker compose를 사용하여 application을 실행하는 것

 

step1

도커 설치하고 WSL2 세팅 및 리눅스 배포판 설치 &  Windows Terminal 추가다운로드

https://docs.microsoft.com/ko-kr/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

# docker/getting-started 란 Image를 사용하여 컨테이너 생성

# -d : 컨테이너를 detached mode (background) 로 사용
# -p 80:80 : host의 80번 포트를 컨테이너의 80번 포트와 연결
# docker/getting-started : 사용할 image
docker run -d -p 80:80 docker/getting-started

# -d -p 라는 하나의 flag를 붙여서 -dp로 사용할 수 있다.
docker run -dp 80:80 docker/getting-started

detached mode / attached mode 이해하기 추가

 

 

step2

Docker Dashboard 이해하기

 

Docker Dashboard 제공 기능

  • 실행되고 있는 컨테이너 목록 빠르게 확인 가능
  • 컨테이너 로그에 쉽게 접근가능
  • 컨테이너 내부에 shell을 가져올 수 있음 (?)

 

step3

Container 와 Images 이해하기

 

Container 란?

호스트 시스템의 다른 모들 Processed와 격리된 sandboxed process를 의미한다.

"격리"는 Linux에 있었던 Kernel namespaces와 cgroups을 활용함

종합하자면

  • 이미지의 실행가능한 instance로써, create/start/stop/move/delete 등이 가능하다.
  • 로컬과 가상머신에서 실행하거나, 클라우드에 배포가능
  • portable하여 모든 OS에서 실행 가능
  • 컨테이너끼리 서로 격리되어 그들만의 software, binaries, configurations 을 지님

 

Container 이미지란?

컨테이너를 실행할때, 격리된 filesystem을 사용한다. 이때 filesystem은 컨테이너 이미지로부터 제공받는것.

이미지가 컨테이너의 파일시스템을 가지고 있기 때문에, 이미지는 Application 실행을 위한 모든 것을 담고있다.

 


Part2. Sample application


간단한 todo list 프로그램 생성하기

 

step1

Get the app

https://github.com/docker/getting-started

위 경로에서 app 폴더 clone 해온다.

 

step2

Docker file 준비

application을 build하기 위해서는 Dockerfile 이 필요하다.

Docker file은 컨테이너 이미지를 생성할때 사용되는 텍스트로 쓰여진 명령어들의 script 이다.

 

아래처럼 텍스트를 작성하여 저장한다. (확장자명 .dockerfile)

여기서 주의할점은, 내가 이미지로 만들 프로그램/파일 들이 있는 경로에 dockerfile을 생성해야한다는 점

# syntax=docker/dockerfile:1

# FROM : 해당 이미지에서 시작하고 싶을 때 사용
FROM node:12-alpine

RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production

# CMD는 
CMD ["node", "src/index.js"]
EXPOSE 3000

 

step3

dockerfile 을 build하여 Image 생성

# 1. 해당 경로로 이동

# 2. 이미지 빌드
docker build -t getting-started .

위 명령어는 Dockerfile을 컨테이너 이미지로 빌드할때 사용하는 명령어

 

 

'ETC > Server' 카테고리의 다른 글

Docker File 사용하여 Docker image 만들기  (0) 2022.07.12