Burninghering's Blog
article thumbnail
Published 2021. 11. 16. 09:03
211115TIL_도커 Today I Learned

1. 도커

컨테이너=어플리케이션

도커는 컨테이너를 잘 매니징 해주는, 컨테이너 가상화 기술

 

컨테이너만 설치해주면 된다 -> WAS 필요없음

 

도커=가상화

컨테이너를 쓰기 전에 이미 많이 쓰던 방식!

처음엔 그냥 올리고,

두번째는 VM Ware를 쓰며 Hypevisor(가상화 플랫폼을 설치한 서버와 컴퓨터가 통신하게) 있어야했음(1차 가상화)

애플리케이션을 컨테이너 안에 넣음(2차 가상화)

 

도커는 내부언어가 go 로 되어있으며 

핵심 기술은 cgroups 와 namespaces

-cgroups는 메모리, cpu 등 자원에 대한 격리를 지원

-namespaces는 파일, 프로세스 등 격리

cgroups 와 namespaces를 이용해서 컨테이너를 좀 더 쓰기 쉽게 만든 기술이 도커

 

다른 프로세스로 찢어지게, 다른 컴퓨터처럼 느껴질 수 있게 만들어준다.
(다른 컨테이너에 영향을 안끼치게 해줌)

 

2. 도커 사용해보기

도커를 만들어주기 위해 이미지 파일 만들어준다

FROM openjdk:8-jdk-alpine #베이스 이미지 파일
COPY build/libs/demo-0.0.1-SNAPSHOT.jar app.jar #컨테이너 내부로 파일 복사
ENTRYPOINT ["java","-jar","/app.jar"] #컨테이너 생성되면서 실행

FROM - 이미지를 어디서 가져올지

COPY - 파일의 상태를 백업상태로 찍어놓는다

ENTRYPOINT - 스프링 부트를 실행하는 명령어

 

윈도우에서 도커 사용해보기 순서

1. 프로젝트 만들기

2. 도커 파일 만들기(Dockerfile)

3. 도커 이미지 만들기

4. 도커 컨테이너 만들기

(도커 데스크탑 실행 후 위 작업들 실행!)

 

아래는 윈도우에서 도커 데스크탑 에러시 참고하면 좋은 블로그.

윈도우10 도커 설치시  WSL 2 installation is incomplete 에러 발생하면 아래 블로그를 참고하자!

https://blog.nachal.com/1691

 

WSL 2 installation is incomplete, 윈도우10 도커 설치시 리눅스 커널 업데이트, Docker Linux Kernel Update on Wind

윈도우에서 도커를 설치하다가 WSL2가 설치되지 않았다는 오류 메세지가 뜨면, 리눅스 커널 업데이트를 해야 합니다. 뭔 윈도우에 리눅스 커널이야?!?!? 1. 파워쉘을 관리자 권한으로 실행 (파워쉘

blog.nachal.com

 

위에서 리눅스 커널 설치 후,

도커 메뉴 상단에서 벌레 모양을 클릭 후 파란색으로 표시한 버튼을 누르고 다시 도커를 실행하니 내 경우엔 문제가 해결되었다.

 

도커 이미지란?

컨테이너를 생성해주는 이미지 = 컨테이너를 실행하기 위해 필요한 파일들의 모음

이미지를 만들기 위해서 Dockerfile이라는 이미지 생성 파일이 필요

 

이미지 생성하는 방법

docker build -t {이미지명}:{태그} {Dockerfile 파일 위치}

docker build -t my-springboot .

 

 

도커 컨테이너란?

컨테이너 = 실제로 실행되는 프로세스

 

생성 방법

docker run --name {컨테이너 이름} -p {호스트 포트}:{컨테이너 포트} -d {이미지명}:{이미지태그}

도커 명령어

 

호스트에는 포트들과 컨테이너가 있는데,

스프링부트이 기본 포트가 기본으로 8080으로 지정되어있다.

컨테이너 겉에 도커가 감싸져 있는데, 호스트포트를 8082라고 지정하고(8083,8084..도 가능) 컨테이너로 연결되며 컨테이너 포트는 8080으로 지정하여 생성한다.

 

이미지 레이어란?

이미지 레이어 -> 이미지를 만들때 생성되는 파일 시스템

이미지 레이어는 컨테이너를 삭제하고 다시 만들어도 사라지지 않음!

컨테이너 레이어란?

컨테이너 레이어 -> 컨테이너를 실행하면 생성되는 파일 시스템

컨테이너가 삭제하면 컨테이너 레이어가 삭제되기 때문에 컨테이너를 다시 생성해도 존재하지 않음!

 

docker tag라는 명령어가 레포이름이 변경한 동일한 이미지를 복사????

 

왜 굳이 도커  사용?

서버 여러개 운영하다보면 하나의 환경으로맞춰서 운영하기 힘든데 도커가 도커파일로 서버환경 하나로 맞춰줌

https://www.44bits.io/ko/post/why-should-i-use-docker-container

 

왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유

컨테이너는 서버 애플리케이션을 배포하고 서버를 운영하는 표준적인 기술이 되어가고 있습니다. 하지만 처음 사용해본다면 그 장점이 잘 와닿지 않을 수도 있습니다. 왜 굳이 도커 컨테이너를

www.44bits.io


현재 22번 포트 접속 이상 문제로 더 이상 도커 학습 진행을 못하고 있다....

해결 방법을 찾으면 다시 포스팅 예정 

'Today I Learned' 카테고리의 다른 글

4 Ls: 반복되는 TIL 회고를 바꿔보자!  (0) 2021.11.23
21116TIL_쿠버네티스 1  (0) 2021.11.16
211109TIL_스프링 5  (0) 2021.11.09
211105TIL_스프링 3  (0) 2021.11.05
211104TIL_스프링 2  (0) 2021.11.05
profile

Burninghering's Blog

@개발자 김혜린

안녕하세요! 반갑습니다.