1. 도커 컨테이너 생애주기
2. 도커 데이터 저장
3. 도커의 장단점
4. 도커 이미지 종류
1. 도커 컨테이너 생애주기
도커 컨테이너는 "쓰고 버리는" 일회용품
-> 오래된 컨테이너를 버리고 새로운 이미지로부터 새로운 컨테이너를 만들어 갈아타는 방식 (계속 업데이트)
-> 도커 허브에서 이미지를 다운 받고 계속 업데이트
컨테이너를 만들고(create) -> 실행하고 (run) -> 종료하고(stop) -> 폐기(rm)
2. 도커 데이터 저장
도커가 설치된 물리적 서버(호스트pc)의 디스크를 마운트해 데이터를 저장
컨테이너가 있어도 데이터를 별도로 관리.
운영체제 + 소프트웨어 -> 컨테이너 형태
도커구조와 성질
* 환경을 격리할 수 있다.
1. 독립된 환경
- 프로그램을 여러개 띄울 수 있다.
2. 이미지를 만든다
- 이미지 저장(도커 레지스트리(도커허브))
- 이미지를 내려 받고 교체하기 쉬움, 업데이트가 쉽다.
- 이동이 편리하고 똑같은 컨테이너를 쉽게 만들 수 있어 개발환경을 배포하기 쉽다.
3. 컨테이너에 커널을 포함시킬 필요가 없다(커널이 없다)
- 가볍다.
-배포판을 바꿀 수 있다.
3. 도커의 장단점
장점
● 한 대의 물리 서버에 여러 대의 서버를 띄울 수 있다.
- 커널이 포함되지 않으므로 물리 서버의 운영체제에 의존
- 가상화 기술에 비해 압도적으로 가벼움.
- 하이퍼바이저와 게스트 OS가 없기 때문에 가벼움
● 서버 관리가 용이
- 각 소프트웨어를 독립된 환경에 격리해 운영
- 컨테이너 교체나 수정이 쉬움
● 서버 고수가 아니어도 다루기 쉬움
단점
● 리눅스용 소프트웨어밖에 지원하지 않음
● 호스트 서버에 문제가 생기면 모든 컨테이너에 영향을 줌
● 컨테이너 하나를 장기간에 걸쳐 사용할 때는 그리 큰 장점이 없음
도커의 주 용도
● 팀원 모두에게 동일한 개발환경 제공
● 새로운 버전의 테스트(격리된 환경을 이용)
● 동일한 서버가 여러 대 필요한 경우
- 명령 한 줄로 서버를 필요한 만큼 띄울 수 있고, (운영체제 & 소프트웨어 설치)하는 단순 업무를 반복할 필요 없음
- 스케일링에 유리(필요할 때 늘리고 삭제하는)
4. 도커 이미지 종류
도커 이미지 - 리눅스 운영체제
● ubuntu, centos, debian, fedora, busybox, alpine (모두 리눅스 운영체제)
● 도커 허브에서 소스 복사해서 쉘에서 pull
● 다운 받으면 image에서 확인 가능
도커 이미지 - 웹서버/데이터베이스 서버
● httpd(Apache), nginx, / mysql, postgres(PostrgreSQL), mariadb
● pull 할 수도 있지만 run으로 바로 실행 가능(웹브라우저에서 포트 접속하면 작동하는 것 확인 가능)
도커 이미지 - 프로그램 실행을 위한 런타임과 그외 소프트웨어
● openjdk(자바런타임), python, php, ruby, perl, gcc, node, registry(도커레지스트리), wordpress, nextcloud, redmine
docker run으로 이미지 가져올 수 있음
pc에서 컨테이너로 파일을 보낼 수 있고 실행 시킬 수 있음
초기 도커: 리눅스의 이미지만 실행하는 형태
0.9.0 libcontainer 기술을 통해 현재 형태를 갖추게 되어 runC 1.11.0으로 발전함.
'강의 > DevOps-Docker' 카테고리의 다른 글
[DevOps-Docker] 10. 기타 /쿠버네티스, Podman (0) | 2023.09.14 |
---|---|
[DevOps-Docker] 3. 도커의 동작 원리 //2. 도커 허브와 이미지, 그리고 컨테이너 (0) | 2023.09.11 |
[DevOps-Docker] 3. 도커의 동작 원리 //1. 도커의 동작 원리 (0) | 2023.09.11 |
[DevOps-Docker] 1. 도커란 무엇인가? (0) | 2023.09.08 |