docker 를 스터디하면서 느꼈던 docker 종류? 단계? 에 대해 끄적여 봅니다.
어디까지나 제가 docker 공부하면서 step by step으로 레벨업(?)한 과정을 서술 해 본 거라서
절대적인 기준은 아니고 제가 생각한 레벨 step이니 docker 공부하실 때 참고하세요.
레벨 1 : 기본, 입문 -> docker를 일단 사용해보자!
< 특징 >
- 오피셜 docker hub에서 배포하는 docker image를 다운받아 container 실행해서 사용.
- docker run … 아주 긴~ 한줄 명령으로 container 실행.
< 장점 >
- official로 배포되는 docker image를 쉽게 설치해서 사용 가능.
- docker 명령어 몇 개만 익혀도 바로 사용 가능.
- 구글링이나 웹서핑 해보면 docker run 사용한 강좌 블로그를 쉽게 찾을 수 있음.
< 단점 (진입장벽) >
- docker는 기본적으로 console 환경에서 실행/동작하므로, linux shell 명령 치는데 익숙해야 함.
- 내가 필요한 service/app의 배포 docker image를 잘 찾는 것이 관건.
- 나만의 docker container 셋팅은 가능하지만, 나만의 docker container 환경을 배포는 못함.
- 여러 옵션들을 적용하기 위해서는 docker run 명령이 아주 길게 작성되야 함. (포트포워딩, 볼륨 개념 필요)
레벨 1.5 : 기본, 입문 ++ -> docker 실습 단계
< 특징 >
- 1단계 통과하여 docker의 강력함에 매력을 느끼고 이것 저것 docker image 찾아서 엄청 설치하고 실습해보는 단계.
- docker-compose 문법을 습득해서 docker run ... 의 긴~ 한줄 명령어에서 탈출.
- docker-compose.yml 에 container의 여러 속성 간단하게 서술되어 있음.
- docker-compose up/down/start/stop 등의 명령으로 container 간단히 컨트롤 가능.
- Portainer docker container를 설치해서 web GUI로 docker 환경 셋팅 등 작업 가능.
- 아직 2단계 전이라 docker container 사용하는 측면에 포커스 맞춰진 상태라서, 장/단점은 1단계랑 비슷해 생략.
tip. 레벨2부터는 개발자의 영역이라고 생각됩니다.
배포되는 서비스를 사용만하는 유저의 입장이시라면 도커로 이런것도 할 수 있구나 정도만 알고 넘어가셔도 될듯 합니다.
레벨 2 : 활용 -> docker 환경을 저장/백업하고 배포해보자
< 특징 >
- docker 환경/서비스를 직접 구성하여 docker image 만들기.
- docker commit 으로 containr를 docker image로 만들기.
- docker save/load 으로 image 저장/불러오기. docker image 배포 가능.
< 장점 >
- 내가 원하는 docker container 환경을 docker image로 만들어 배포/재사용 가능.
- 사용하던 docker 컨테이너를 docker image로 저장해서 백업/재사용 가능.
< 단점 >
- fixed 된 docker image 가 배포 되므로, 다른 사용자가 임의로 image 수정하기 어려움.
- 배포하는 image에 추가 작업이 된 경우, image 용량이 점점 커짐.
레벨 3 : 고급 -> 도커 환경을 효율적으로 배포해보자.
< 특징 >
- docker build를 사용하면 레벨 2의 단점을 해결할 수 있음.
- docker build 명령으로 실시간으로 docker image 만들고 container로 실행하기.
- dockerfile 을 작성해 놓고, docker build 명령으로 docker image 생성.
< 장점 >
- dockerfile 스크립트가 배포 되고, 실시간으로 docker build 수행하여 docker image 생성됨.
- 배포된 dockerfile을 수정하여 내가 원하는대로 docker image 수정/변경 가능.
< 단점 >
- 실시간으로 dockerfile을 파싱하여 docker image를 빌드함. 빌드 시간이 소요됨.
- 특정 repo나 package가 접속이 안되거나 사라져 apt install fail 된 경우 build error 발생함.
- image build 성공하도록 수정 필요하므로 docker build 문법에 대한 이해 필요함.
레벨 4 : 전문가 -> 클라우드 서비스 배포/서비스하는 현업에서 필요한 기술로 추정.
< 특징 >
- 여러 docker 컨테이너가 서로 연동해서 동작하도록 작성.
- 여러 컨테이너가 서로 연동하여 클라우드 서비스 등 제공을 위해 도커스웜? 쿠버네틱스? docker 환경을 구성/배포하는 작업.
< 장점 >
- 여러 가지 컨테이너가 서로 연동하며 동작하도록 docker image/container 구성 가능.
- 예시로 Harbor가 쿠버네틱스로 배포되는 도커 서비스 중 하나입니다.
https://sonhc.tistory.com/976 : [docker] harbor 사용법 #1
https://sonhc.tistory.com/977 : [docker] harbor 사용법 #2 - docker client 설정 (insecure-registries)
https://sonhc.tistory.com/978 : [docker] harbor 사용법 #3 - harbor 서버 image 연동 실습 (docker tag, push, pull)
< 단점 >
- 취미로 docker 입문한 상황에서 쿠버네틱스와 도커스웜은 사용 할 일 없어서 아직 모르는 분야.
- 레벨4는 저에게 미지의 영역으로 저도 궁금한 부분이라, 레벨4 전문가에 대한 설명은 다른 고수님께 부탁 드립니다.
이상입니다.
'Guide_Tip_Tech > Docker' 카테고리의 다른 글
[docker] code server 설치 (docker-compose 방식) (0) | 2022.08.08 |
---|---|
ubuntu 16.04 에서 docker 최신 버전 설치하는 방법 (5) | 2022.03.30 |
WSL 사용시 ext4.vhdx 저장되는 BasePath 위치 확인 (0) | 2022.02.15 |
[docker] heimdall 설치 (docker-compose 방식) (0) | 2022.02.02 |
[docker] mStream Music 설치 (docker-compose 방식) (0) | 2022.02.02 |
[docker] netdata 설치 (docker-compose 방식) (0) | 2022.02.02 |
[docker] WeTTY 설치 (docker-compose 방식) (1) | 2022.02.02 |
[docker] portainer 설치 (docker-compose 방식) (0) | 2022.02.02 |
[docker] droppy 설치 (docker-compose 방식) (0) | 2022.02.01 |
[docker] ubooquity 설치 (docker-compose 방식) (0) | 2022.02.01 |