본문 바로가기

IT 엔지니어/CLOUD

Docker 1

기존 가상머신 - 하드웨어에 게스트 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(이미지파일)만 설치 가능

하나의 선박에 컨테이너 적재

하나의 호스트에 도커 서비스 적재

 

 

이미지 - 환경설정 파일 /디렉터리만 설치

 

  1. 기본 설정
방화벽 해제
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. 도커 구성 요소
[도커 클라이언트]

1) 컨테이넌 운영 CLI - 명령어 라인 언터페이스

2) 도커 서버 - 클라이언트 명령 수행 시스템 및 서비스 > 컨테이너 볼륨 이미지 관리 서비스 수행

3)  이미지 - 컨테이너 생성 및 구동 위한 읽기 전용 템플릿

4) 컨테이너 - 이미지를 독립적으로 실행하는 단위/ 실행 프로세스 / 서비스 

5) 볼륨 - 서버의 저장소 / 디스크
이미지는 읽기 전용으로 저장 불가 / 설정 파일 및 파일 저장 가능한 장소
컨테이너의 데이터 외부 저장소

6) 네트워크 - 동일 네트워크 내 컨테이너간 통신 제공 기능 / VLAN 위한 Inter_VLan

7) 레지스트리 - 이미지 저장소 
  1. 도커 설치
# 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

  1. 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~~

  1. 도커 설치
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

  1. 웹서버 설치
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>

  1. Docker 홈 디렉터리
/var/lib/docker
  1. 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
  1. 기본 명령어
[대기]
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