본문 바로가기

Docker

Docker 기본개념

VM보다 Container가 훨씬 가벼움

 

 

 

# Docker의 3요소

 

1) Dockerfile

   - Copy files

   - Install dependencies

   - Set environment variables

   - Run setup scripts

 

Dockerfile로 image를 만들 수 있다.

2) Image ( 클래스라 생각 )

   - 변경 불가능한 상태

 

3) Container ( Image를 사용해서 각각의 Container를 만들 수 있다 )

   - 개별적으로 수정가능 -> 수정해도 Image에 영향 X ( 클래스와 객체의 관계와 비슷 )

 

 

 

 

 

# 이미지 공유 컨테이너 레지스트리

 

도커가 있어야 이미지를 실행가능

 

 

 

# 이미지 공유 컨테이너 레지스트리 종류

 

 

 

 

# 도커 실행 과정

 

 

 

# Dockerfile 작성법

 

https://docs.docker.com/engine/reference/builder/

 

Dockerfile reference

 

docs.docker.com

 

 

실제 가장 먼저 작성되는것이 Base

- Dockerfile은 레이어형태로 구성되어있다.

- 가장 빈번히 작성(변경)되는 것일 수록 제일 나중에 작성

- 밑에 작성된 레이어일수록 자주 변경 되어야함 -> 변경이 되면 이미지 다시 만들어야하는데

- 변경되지 않은 레이어까지는 재사용(캐시된 것을 씀) , 변경된 레이어와 그 밑의 레이어들은 다시 빌드 -> 이미지만드는 시간 단축

 

 

 

 

# (Dockerfile 이용해서) 이미지 만들기

 

docker build -f Dockerfile -t fun-docker .

레퍼런스 참고

 

- docker images : 로컬머신에 만들어진 이미지들을 확인할 수 있다.

 

 

# 도커 이미지 빌드 시 자주사용되는 옵션

docker image build -t 이미지명:[태그명] Dockerfile의 경로

 

1. -t 옵션은 이미지명과 태그명을 붙이는 것 실제 사용에서 거의 필수

2. 도커파일 경로에서 "."은 현재 작업 디렉터리

3. -f 옵션은 기본인 Dockerfile 대신에 다른 파일 명을 사용할 경우 사용

>$ docker image build -f Dockerfile-test  -t exmaple/echo:latest

4. --pull 옵션은 매번 베이스 이미지를 강제로 새로 받아옴

>$ docker image build --pull=true -t exmaple/echo:latest

 

 

# 도커 이미지 빌드 시 주의점

 

docker build --tag echoalpine:1.0 .


--tag(또는 -t) 옵션은 새로 생성할 이미지 이름을 지정한다. 여기서는 리포지토리 이름으로 echoalpine을 사용하고 태그로 1.0을 사용했다. 마지막에 점(.)은 Dockerfile의 위치를 경로를 지정한다. 파일 이름이 Dockerfile이 아닌 경우 --file(또는 -f) 옵션을 사용해서 파일 이름을 지정한다.

 

 

 

 

# 도커 컨테이너 실행

 

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

 

-d : 백그라운드에서 컨테이너 실행

-p : 포트 연결

 

 

 

 

 

# 컨테이너 상태 확인

 : desktop UI에서 확인가능

 : docker logs (컨테이너아이디)

 

 

 

# 도커 명령어 치트시트

 

꼭 docker stop 후 docker rm  하기!

 

 

 

 

출처 : https://www.youtube.com/watch?v=IiNI6XAYtrs

'Docker' 카테고리의 다른 글

Docker Network 구조 및 동작 원리  (0) 2022.08.04
도커 정리 + 웹서버  (0) 2022.07.24
Docker-compose.yml 분석!  (0) 2022.07.07
Dockerfile 분석!  (0) 2022.07.07
Recent Posts
Popular Posts
Recent Comments