갬미의 성장일기
Day 32 - 도커 (이론, 실습) 본문
오늘 배운 내용
- 도커
도커가 왜 필요할까?
VM위에 APP을 깔아 사용할때
APP종류에 따라 Dependency를 맞춰줘야 할 때가 있다
이떄 app 간의 dependency가 충돌한다면 -> vm을 추가로 만들어 app을 각각 다른 vm에 설치해야한다
VM이 가볍기때문에 크게 무거워지지는 않지만 커널이 중복되어 설치되기 때문에 하드웨어 리소스를 많이 잡아먹게 된다
이를 해결하기 위해 [app - dependency]를 묶어 패키지를 만들어 배포하는 컨테이너를 사용한다
이 컨테이너는 hypervisor위에서 돌아가지 않고 container runtime위에서 돌아간다
os - container runtime - container
이미 이미지가 있다면 컨테이너 생성, 시작은 아주 빠르게 된다
이미지를 다운받는데 시간이 오래걸릴뿐 컨테이너를 생성하고 app을 시작하는것은 아주 빠르게 가능하다
-> 고가용성 가능
AWS에서 EC2를 만들때 AMI라는걸 선택하게 된다
이런게 아마존에서 제공하는 OS image이며 선택만하면 이미 이미지가 아마존 저장소 내에 있기때문에 빠르게 EC2 생성이 가능하다
도커 설치하기
참고 사이트 https://docs.docker.com/engine/install/centos/
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
이후 아래 잘 되면 ok
docker ps
다음을 입력
docker run -d -p 80:80 nginx
그러면 nginx가 실행됨!
톰캣 설치하기
docker run -d -p 8080:8080 tomcat
내 아이피:8080 으로 접속
app에 소스가 없기때문에 이렇게 나오는게 맞음
docker는 컨테이너 이미지를 받아와 이를 통해 컨테이너를 만들고 app을 실행시킨다
이과정을 한번에 하는 명령어가 run
docker run -d -p 80:80 nginx
-d 안하면 해당 프로세스가 먹혀있기때문에 창을 하나 더 열어야 한다
-d 해서 백그라운드에서 돌아가게 해야 편하다
-p 포트번호를 적는다
-p 서비스요청포트:컨테이너포트
컨테이너 포트는 이미지를 만들때 정해진다
사용자가 접속할때 ~~~:서비스요청포트 주소창에 입력
-d -p는 무조건 쓴다고 생각하면 된다
docker run -d -p 8090:80 nginx
내 pc에서 8090번 포트로 서비스를 요청하면 80번 포트를 이용하는 nginx를 실행하겠다
이미지가 없다면 -> docker hub에서 image pull -> create container -> start
이미지가 이미 있다면 -> create container -> start
container
그냥 VM에 tomcat을 깔려면 -> 종속성따져서 깔게 많음
container 에서 tomcat깔려면 -> docker run 하면 끝
hypervisor - 가상화를 위한 os
[host - hypervisor - vm]
container runtime - 컨테이너를 관리하기 위한 os = 컨테이너를 만들고 삭제하고 실행하고 멈추고,, 등등
[host - os - container runtime - container] // host는 물리적 서버 or vm이다
다른 포트에서 서비스 열어보기
docker run -d -p 9090:80 hifrodo/gke:sysinfo_v1
내 ip:9090 접속
도커 컨테이너 삭제
docker ps -a
docker rm -f 이미지 아이디3자리 이미지 아이디3자리
여러개 입력하여 여러개 지우기 가능
도커 이미지 삭제
docker images
docker rmi 레파지토리:tag 또는
docker rmi 이미지ID 3자리
도커 이미지 받아오기
docker pull nginx
오늘의 회고
- 그간 도커를 만나면 너무 생소하고 개념자체가 너무 어렵게 느껴져서 회피하곤했는데 이렇게 천천히 배우니까 이해도 잘되고 좋았다
- 도커가 이렇게 편하고 사용하기 쉽다는것(아직까지는 ㅎ)을 알았으면 진작 배워서 썼을 것 같다
- 클라우드 서비스를 배울수록 가
'Cloud > Cloud 공부일기' 카테고리의 다른 글
Day 34 - 도커 실습 (0) | 2022.02.24 |
---|---|
Day 33 - 도커 실습 (0) | 2022.02.23 |
Day 31 - 가상화, 가상머신 만들기(Virtual Box, CentOS) (0) | 2022.02.21 |
Day 30 - 클라우드, 가상화, 도커, 쿠버네티스 개념 (0) | 2022.02.18 |
Day 29 - Linux network 명령어 , 서버 배포하기 (0) | 2022.02.15 |