Docker 개념부터 설치&사용법 정리

도커란 ?

도커를 이해하시려면 이전에 나온 가상화의 개념부터 이해하시는편이 좋을거라고 생각합니다.
기존의 가상화란 제한된 하드웨어 환경에서 여러가지 OS 및 서비스를 구축하기 위해 하이퍼 바이저 위에 각각의 OS를 따로 구축해서 사용했었습니다.

이렇게 가상머신 위에 사용하다보니 자연스레 각각의 Virtual Machine마다 OS를 설치해 주어야했고 OS가 사용하는 리소스가 따로 소모되기때문에 낭비되는 자원이 상당히 많았으며 OS버전의 EOS(End Of Service)가 만료될경우 신규 OS를 설치하고 거기에 다시 App을 설치하려면 꽤나 복잡하고 호환성도 테스트해야되는 많은 번거로움이 있었습니다.

그래서 2013년 출시된 도커는 다른방향으로 구현이 됐습니다

여러개의 Guest OS에서 각각의 App을 띄우는게 아닌 하나의 종속된 OS에서 Docker 위에 각각의 컨테이너에 App을 하나씩 띄우게 되면서 OS 커널을 다른 컨테이너와 공유 할 수 있으며, 각 컨테이너는 사용자 공간에서 격리 된 프로세스로 실행됩니다. 컨테이너는 VM보다 적은 공간을 차지하고 적은 리소스를 사용하기때문에 효율이 더 좋아졌습니다.

이미지&컨테이너

기본적으로 도커에서 이미지&컨테이너는 도커를 효율적으로 사용하게끔 도와주는 기능입니다.

이미지

먼저 이미지는 OS image와 같다고 보시면됩니다.
Windows OS를 설치할때 ISO파일을 보셨듯 ISO로 설치되는 윈도우에는 기본적으로 윈도우에 필요한 모든것들이 설치되어있습니다.
마찬가지로 도커에서 사용되는 각각의 이미지들에는 이미지이름에 맞춰필요한것들이 기본적으로 설치되어있으며 추가적으로 필요한경우 직접 이미지에 필요한 툴을 추가설치해서 새로운 이미지를 만들수도있습니다.

예르들어 hub.docker.com에 있는 ubuntu 이미지를 예를 들어 설명드리겠습니다.

위 도커 이미지를 사용해서 컨테이너를 생성하게 된다면 기본적으로 Docker위에 Ubuntu 환경이 구축되는것이며 이미지를 생성할때 apt install nginx 과정을 추가한다면 Ubuntu + Nginx의 이미지가 생성되는것 입니다.

다만 ubuntu 이미지 자체가 용량이 꽤나 크고 무거운 이미지에 속하므로 nginx만 docker로 사용하려면 아래처럼 nginx 공식이미지가 따로있습니다.

공식이미지의 경우 문서를 보면 OS Layer가 어떤걸로 사용됐는지 나와있습니다.
가벼운 OS종류인 Alpine 이나 데비안 종류가 많이 사용되는거같네요.

컨테이너

컨테이너는 위에 말씀드린 이미지를 통해서 만들어진 결과물(?) 이라고 보시면 될거같습니다.

아래 컨테이너를 보면 도커의 관리를 도와주는 portainer이미지로 만들어진 컨테이너임을 확인할 수 있습니다.
사용하고있는 port나 언제 생성되었는지 정보도 포함되어있네요.

portainer를 이용하면 도커에서 실행되는 컨테이너, 이미지등을 편하게 확인할 수 있기때문에 저 처럼 초보자 분들께는 추천드리는 이미지입니다.

각각의 컨테이너는 용도에 맞춰서 만들어주고 잘 배치해주면 하나의 OS 하나의 Docker아래 여러가지 서비스를 쉽게 운영할 수 있으며
추후에 OS환경, 클라우드 환경을 바꾸더라도 쉽게 마이그레이션 할 수 있습니다.

설치 방법

설치방법은 기본적인 Linux OS인(Cent OS, Ubuntu)부터 윈도우, 라즈비안, 헤놀로지 등등 많은 버전이 있기때문에 자신이 구축한 환경에 맞춰서 설치하시면 됩니다.

Ubuntu 20.04 Docker 설치하기.
Cent OS Docker 수동설치하기.
Cent OS Docker 설치하기
Windows 에서 Docker 사용하기

WSL2 Ubuntu Docker & Portainer 설치하기.
[GCP]VM(ubuntu OS) Docker 설치하기.(portainer 추가)
라즈베리파이4 Docker 설치하기.(라즈비안)
라즈베리파이4 OMV5 docker,portainer 설치하기
헤놀로지 도커(docker)를 이용한 토렌트머신(Transmission, qbittorrent) 설치하기

사용 방법

Docker 기본 사용 방법(이미지 검색, 컨테이너 생성)
Docker 기본이미지로 Custom Image 만들기(tag,commit)
Docker image,container 수동으로 넣기

Docker Image Export하기|
Docker Container Export하기

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link