기존 가상머신 - 하드웨어에 게스트 OS 설치 후 서버 설치 - 리소스 부족
베어메탈 - Hypervisor + Guest OS / VM 내부에 GEUST OS 설치( TYPE 1 )
Hypervisor = Hyper + guest OS
하이버바이저가 직접 하드웨어 제어
VCSA = VS + Guest Os ( TYPE 1 )
Hyper-V = Windows OS + Hypervisor + Guest OS ( TYPE 2 )
컨테이너 기반
게스트 OS 없이 커널 공유 / 호스트 OS만 설치 / OS + hypervisor =container / service(이미지파일)만 설치 가능
하나의 선박에 컨테이너 적재
하나의 호스트에 도커 서비스 적재
이미지 - 환경설정 파일 /디렉터리만 설치
- 기본 설정
방화벽 해제
SELINUX 해제
고정 IP
10.100 10.200
hostnamectl set-hostname docker1 docker1.test.com
gateway=168.126.63.1
[hosts 파일 추가 입력]
vi /etc/hosts
192.168.10.100 docker1.test.com docker1
192.168.10.200 docker2.test.com docker2
- 도커 구성 요소
[도커 클라이언트]
1) 컨테이넌 운영 CLI - 명령어 라인 언터페이스
2) 도커 서버 - 클라이언트 명령 수행 시스템 및 서비스 > 컨테이너 볼륨 이미지 관리 서비스 수행
3) 이미지 - 컨테이너 생성 및 구동 위한 읽기 전용 템플릿
4) 컨테이너 - 이미지를 독립적으로 실행하는 단위/ 실행 프로세스 / 서비스
5) 볼륨 - 서버의 저장소 / 디스크
이미지는 읽기 전용으로 저장 불가 / 설정 파일 및 파일 저장 가능한 장소
컨테이너의 데이터 외부 저장소
6) 네트워크 - 동일 네트워크 내 컨테이너간 통신 제공 기능 / VLAN 위한 Inter_VLan
7) 레지스트리 - 이미지 저장소
- 도커 설치
# dnf -y install yum-utils
# yum-config-manager --add-repo <https://download.docker.com/linux/centos/docker-ce.repo>
다음 위치에서 레포 추가 : <https://download.docker.com/linux/centos/docker-ce.repo>
docker-ce.repo가 /etc/yum.repos.d/ 디렉토리에 docker-ce.repo 생성
--------------------------------
dnf install -y docker-ce docker-ce-cli containerd.io
Docker-ce 설치 스크립트 다운로드
~~# curl -fsSL <https://get.docker.com> -o get-docker.sh
-rw-r--r-- 1 root root 22592 4월 7 10:27 get-docker.sh~~
- 도커 설치
dnf -y install epel-release git-core
dnf install -y docker-ce docker-ce-cli containerd.io
----------------------------------
systemctl enable --now docker
docker -v
docker version
docker system info
- 웹서버 설치
docker run -d -p 8080(호스트):80(컨테이너) --name webserver nginx
docker run -d -p 8082:80 --name site-apache httpd
**호스트(네트워크 외부에서 접근하는 쪽)**의 8080 포트를
컨테이너 내부의 80 포트에 매핑
[기존 컨테이너에서 설정 복사 후 새로 실행]
docker commit webserver webserver-image
docker run -d -p 8081:80 --name webserver2 webserver-image
----------------------------------
docker ps / docker ps -a = docker container ls -a
=================================
docker container prune
종료된 컨테이너 삭제
docker (container) rm [Container ID]or[Name]
docker image rm/ ***rmi*** [Container ID]or[Repository]
container stop 후 delete 가능
container delete 후 image 삭제 가능
curl <http://docker:80>
!DOCTYPE html>
<html>
<head>
<title>***Welcome to nginx***!</title>
- Docker 홈 디렉터리
/var/lib/docker
- TEST
>hello-world 이미지 이용 테스트
docker run hello-world
docker container ls -a
docker images
docker container prune
docker run ubuntu /bin/echo 'Hello docker'
우분투 이미지 설치 후
우분투의 echo명령으로
'Hello docer' 출력 명령
docker run -it --name my-ubuntu ubuntu bash
- 기본 명령어
[대기]
docker run -dit --name my-server ubuntu tail -f /dev/null
docker start/stop/exec
---------------------------------
모니터링
docker (container) stats [이름]
docker logs -f [컨테이너 이름 또는 ID]
---------------------------------
docker search nginx
NAME ESCRIPTION STARS OFFICIAL
nginx Official 20732 [OK]
---------------------------------
docker create -d / -it --name test
-p 9090:80 -v www:/usr/share/ nginx
'IT 엔지니어 > CLOUD' 카테고리의 다른 글
Docker (0) | 2025.05.06 |
---|---|
Vsphere (0) | 2025.05.05 |
가상화 VMWARE (0) | 2025.05.05 |
Hypervisor (0) | 2025.05.04 |
가상화 (0) | 2025.05.03 |