1. 도커(Docker)
- 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트
- 도커는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이라고 생각하면 된다.
- SW구성을 컨테이너라는 표준화된 유닛으로 패키징하여 사용한다. 컨테이너는 라이브러리, 시스템 도구, 코드 등 SW가 포함되어 있다.
- 즉, 도커는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 도구이다.
- 도커를 통해 애플리케이션을 실행하면 독립적인 환경에서 일관된 결과를 보장한다.
- 대부분 오픈소스 기반 제품들 즉 라이선스 있는 제품은 비포함된다고 할 수 있다.
2. Virtual machine vs Container API
- 하드웨어를 소프트웨어로 재구현하는 가상화(=가상머신)와 달리 컨테이너는 각각의 CPU 프로세스를 격리해서 독립적이다.
- 컨테이너를 실행시키고 있는 호스트 입장에서 보면 컨테이너는 단순히 CPU의 프로세스에 불과하지만, 사용자/컨테이너 입장에서 보면
프로세스는 호스트와 무관하게 동작하는 하나의 가상머신이다. 이런 이유로 도커를 컨테이너형 가상화라고 부르기도 한다.
- 도커는 이런 컨테이너형 가상화를 지원하는 도구들 중 하나이다. 도커는 가상머신과 같이 하드웨어를 가상화하는 것이 아니라
외부 호스트의 운영체제가 별도의 실행환경을 만들어서 각각의 컨테이너 프로세스를 실행시켜 주는 격리된 프로세스로 볼 수 있다.
3. 클라우드 환경에서 도커 사용 시 장점
- H/W 초기 투자비용 절감 : 초기 H/W 도입 비용 불필요와 클라우드 리소스를 탄력적으로 활용할 수 있으므로 APPs, 리소스 최적화를 통해서 초기 투자비용을 절감할 수 있다.
- Add-on 서비스 개발/구축비용 절감 : 개발 및 운영에 필요한 Add-on 서비스들을 All-in-One 형태로 제공하므로 별도의 비용이 발생하지 않는다.
- 운영 비용절감 : 플랫폼 운영을 지원하기 때문에 서버 OS 운영, 업그레이드, 패키지 등의 운 영 인건비가 필요하지 않음 등의 장점을 누릴 수 있다.
즉, 물리적인 환경(기존 구축형)의 공간 문제와 관리적인 문제를 해결해 주는데, 투자비용도 구축형 대비 적은 비용으로 같은 성능을 낸다고 할 수 있다.
4. 도커 구축
- 구축환경
> macOS -> ubuntu 일반적인 환경인 리눅스에서 작업하기 위해 패러렐즈를 사용하여 우분투 설치 후 진행
1) 사용자 추가 (필수 아님)
- 도커를 사용할 유저를 추가하고 사용
- 루트 권한과 도커 관리자를 구분하기 위함(직무 분리)
- 호스트 이름 너무 길어서 변경
2) 도커 설치 전 필수 작업
$sudo apt-get update
$sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
[+] GPG Key 추가(인증) 및 리포지토리 추가
$sudo mkdir -p /etc/apt/keyrings
$curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$sudo apt update ##추가된 리포지토리 업데이트
[+] Docker Engine 및 docker-compose-plugin
$sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
[+] Docker Daemon 설치
- 해당 작업은 루트 권한으로 진행해야 함.
{
"exec-opts" : ["native.cgroupdriver=systemd"],
"log-driver" : "json-file",
"log-opts" : { "max-size" : "100m" },
"storage-driver" : "overlay2"
}
[+] 서비스 재시작 및 서비스 확인
systemctl daemon-reload && systemctl restart docker && systemctl enable docker.service
systemctl status docker.service
3) 도커 시작 및 기본 실행 확인
docker run hello-world
[+] 도커 서비스 확인.
'소소한 IT이야기 > 클라우드' 카테고리의 다른 글
[Cloud]Docker 웹 서버 구축 및 서비스 - 002 (feat. 웹 서비스) (1) | 2023.03.14 |
---|---|
[WinSER_06] Windows 배포(무인 서버) 구성 (feat. AD, DHCP, DNS) (0) | 2023.03.07 |
[WinSER_06] AD 구성 (feat. 홈 폴더, 로밍 프로파일, 정책 설정) (1) | 2023.03.07 |