[20220622_Docker(5: 순서정리)]

YunTrollpark·2022년 6월 22일
1

Docker

목록 보기
5/5
post-thumbnail

Docker (5)

1. docker의 3대 구성요소 및 Container 만들기

1️⃣ Docker는 Container를 만들고, 배포하고, 구동한다!
2️⃣ docker의 3대 구성요소: Dokcerfile, Image, Container
(Dockerfile을 만듬 → 이걸 이용해서 Image를 만듬 → Container 구동)

1) Docker files

: Container를 어떻게 만들어야 하는지 설명서 같은것

• Copy files: Application을 구동하기 위해서 꼭 필요한 파일들이 뭐가 있는지
• Install dependencies: 어떤 framework나 library를 설치해야 하는지 외부 디펜던시에 대해서 명시할 수 있음
• Set environment variables: 필요한 환경 변수에 대해서 설정
• Run setup scripts: 어떻게 구동해야하는지 스크립트 설정

2) Image

: 상단에 작성한 Docker files를 이용해서 Image를 만들 수 있음

• Application을 실행하는데 필요한 코드, 런타임 환경, system tool, system library 등 모든 세팅들이 포함
→ 실행되고있는 어플리케이션의 상태를 스냅샷으로 이미지를 만들어 놓음
→ 이렇게 만들어진 이미지는 변경이 불가능한, 불변의 상태로 볼 수 있음

3) Container

: 샌드박스처럼 우리가 잘 캡쳐해둔 우리 어플리케이션의 이미지를 고립된 환경에서 개별적인 파일 시스템 안에서 실행할 수 있게 하는 것(컨테이너 안에서 우리의 Application이 실행된다)
→ 우리가 캡쳐한 Image를 가지고 Application을 구동
→ Image는 수정이 불가능하지만 Container의 파일은 수정가능(여기서 파일 수정한다고 Image에 영향이 가지 않음)

2. docker 이미지 배포 하는 과정(shipping Containers)

: 이때 Image를 정상적으로 실행하기 위해서는 docker와 같은 엔진을 꼭 사용해야 함

Image를 업로드 가능한 Container Registry 종류

1) Public

: docker hub, RED HAT Quay.io, GitHub Packages

2) Private

: aws, Google Cloud, Microsoft Azure

3. docker file 만들기

❈ 주의사항: 레이어 시스템을 사용하는 이유 ❈

• 제일 빈번히 발생하는 것은 제일 마지막에 적어야함(레이어 시스템)
• 명령어 하나하나가 레이어로 되어 있어서, 빈번히 변경되는걸 마지막에 적으면 레이어 제일 위쪽으로 배치가 됨 → 이미지를 만들고 나중에 소스 파일이 변경이 되어서 새로운 이미지를 만들어야 할 때 레이어를 맨 위에 배치하게 됨 → 변경된 최상단의 레이어만 업데이트 해줌(나머지 레이어는 다시 안만들어도 됨)
• 그래서 이미지를 다시 만들때 변경되지 않은 레이어까지는 재사용(캐쉬된 걸 사용)
• 변경된 레이어부터 그 위에 레이어까지는 다시 build해서 image만드는 시간 단축가능, 효율성도 높아짐

4. Image 만들기

1) docker build -f 도커파일이름 -t 이미지이름 .

// 터미널에서 
docker build -f Dockerfile - t fun-docker .


: 이렇게 명령어를 실행하면 우리가 docker file에서 명시한 명령어 하나하나를 순차적으로 실행

2. docker images

docker images // 명령어를 실행하면 우리 local machine에 만들어진 Image 확인가능
// REPOSITORY 안에 우리가 정해준 Image 이름인 'fun-docker'가 나와있음

5. Contianer 실행

1) docker run

docker run -d -p 8080:8080 fun-docker


: 이렇게 실행하고 docker ps를 입력하면 현재 실행중인 container 리스트 확인가능

1) 동작하고 있는 container에 대해서 log나 다른 정보확인

: contaienr가 실행할때 부여된 Container ID이용

docker logs 컨테이너ID

6. Contianer registry에 Image 업로드

: docker hub를 이용

1) Repository 생성

2) Image 이름 수정


: 이때 Repository이름과 Image 이름이 같아야함

Image이름 수정 방법

: Terminal로 돌아와서 이름 변경가능

docker tag fun-docker:latest 변경하고싶은이름
→ docker tag fun-docker:latest realdreamcoding/docker-example:latest

: 이후에 docker images를 입력하면 2개의 이름이 나옴 → push 전에 login을 해야함

3) docker 로그인

docker login // 입력하고 계정 정보 입력하기

4) push

dokcer push 계정과 Repository이름 명시
→ docker push realdreamcoding/docker-example:latest

: 이렇게 하면 push된 docker image 확인 가능

출처: 드림코딩앨리(https://www.youtube.com/watch?v=LXJhA3VWXFA)

profile
코딩으로 세상에 이야기하는 개발자

0개의 댓글