가상화 다루기

2024. 12. 4. 20:56·Infra
먼저 VMware workstation과 Virtual box를 설치해주었습니다.

type-1 가상화

전체 가상화

  • CPU의 가상화 기술을 이용해서 하드웨어 전체를 가상화하는 기술반 가상화
  • 하드웨어를 완전히 가상화하지 않아 게스트 OS가 직접 하드웨어를 제어하지 않고 하이퍼바이저가 제어하는 기술

type-2 가상화

  • 호스트형 운영체제 위에 하이퍼바이저를 올려서 사용하는 가상화 기술

macOS와 window에서는 리눅스 커널이 없기 때문에 hypervisor를 활성화 시켜서 그 위에 컨테이너를 돌린다.(macOS나 window는 docker desktop으로 이용)

하이퍼 바이저 구성하기

  1. virtualbox 설치 후 네트워크 구성

  2. 기본 환경 구성
  • ubuntu와 centos 가상머신 만들기 (프로세서 2개 메모리는 4096MB)
  • ubuntu 20.04 iso 파일 다운 받고 마운트

ubuntu

-네트워크 구성

  • 자동으로 DHCP에서 IP를 연결하는게 아니고 수동으로 고정된 IP를 설정해준다. 게이트 웨이와 DNS는 host 부분이 첫번째이다.
  • ip 확인
  • sudo vi /etc/hostname 입력해서 full qualified domain name 변경해주기 (여기서는 docker-ubuntu.example.com)
  • sudo vi /etc/hosts 입력해서 ip 변경해주기
  • 외부 네트워크와 잘 연결되었는지 확인하기
  • ubuntu는 root에 password를 줘야지 root 계정으로 전환 가능하다.
    • sudo passwd root로 설정
    • su - root 는 root로 계정 전환
  • text 부팅하는 방법(root 상태에서)
    • systemctl set-default multi-user.target
    • gui 모드로 바꾸려면 sudo systemctl isolate graphical.target
  • 원격 접속을 위한 ssh 서버 설치
    • apt-get update
    • apt-get install -y openssh-server curl vim tree
  • 원격 접속 해보기
    • 아까 설정한 포트포워딩은 127.0.0.1에 105번 포트로 원격으로 접속하려 하면 10.100.0.105에 22번 포트로 연결시키는 작업을 virtualbox가 해준다.
  • 127.0.0.1에 105번으로 접속하면 내가 만든 ubuntu 서버에 접속할 수 있다.
  • 원격 접속 성공
    • free -h 는 메모리 사용량 확인 가능

centos

centos 가상 머신 안에 있는 하이퍼 바이저 끄기(2번째 명령어는 다음번 부팅시에도 실행 안되게)


centos는 기본적으로 ssh 설치 되어있꼬 방화벽 열려 있다.

tree 설치

나머지는 ubuntu와 동일

centos docker

  1. 서버에 docker 설치

ubuntu 서버

docker docs 사이트에서 Install using the apt repository 방식으로 설치했다.

  • 설치 확인

centos 서버

Install using the rpm repository 방식으로 설치했다.

centos 서버는 service demon을 start 해줘야한다.
systemctl start docekr

docker enable까지 해주기 (ubuntu는 안해도 됨)
systemctl status docker // docekr 상태 확인
systemctl enable docker // 다음번 부팅시에도 자동으로 enable 된다.

Container

  • base image + source code + 실행 코드 가 layer 형태로 쌓아 놓은 것으로 하나의 application이 실행 될 수 있도록 모아 놓은 것을container image라고 한다.
  • build시 차례대로 build 해야한다.
  • container image로 실행을 하면 하나의 application process로 running하는게 container라고 한다.
  • container image는 read only, container은 read, write 가능

동작 방식

  • docker hub에는 많은 container image가 저장되어 있다.
  • docker host(linux server)에서 docker demon(설치한 docker engine)이 동작중일 때 docker search nginx 명령을 하면 docker hub에 nginx가 있으면 container image들을 찾아준다.
  • docker pull nginx:lates 명령을 하면 host로 container 이미지를 가져온다.
    • /var/lib/docker/overlay2에 container 이미지가 담긴다.
    • docker images 도커 이미지 확인 명령어
  • nginx container 이미지가 5개의 이미지로 이뤄짐
  • container 실행중인 것 확인

    nginx 웹페이지 확인
  • docker run -d --name web -p 80:80 nginx:latest 명령을 하면 가져온 container 이미지를 컨테이너화 시킨다.
  • docekr stop web 명령으로 web 컨테이너 중지

trouble shooting

  • 우분투에 도커 엔진 설치하는데 자꾸 저런 오류가 뜬다.

프로세스 1952번을 종료 시켰더니 해결됐다.
sudo kill -9 1952

계정에 도커 권한 주기

  • root 계정이 아닌 user 계정에서 docker 명령어를 입력하면 권한이 없다고 나온다.
    • docker 명령 권한 주는 방법은 usermod -a -G docker joon
    • user가 docker group의 member가 될 수 있도록 허가해주는 명령어

출처 : 따배쿠

'Infra' 카테고리의 다른 글

AWS IAM 계정 공유 와 AWS 서비스에 IAM 역할 적용  (0) 2024.12.04
Docker-compose 다루기  (0) 2024.12.04
컨테이너 관리하기  (0) 2024.12.04
컨테이너 다루기  (0) 2024.12.04
리버스 프록시와 로드 밸런서가 다른건가?  (0) 2024.06.19
'Infra' 카테고리의 다른 글
  • Docker-compose 다루기
  • 컨테이너 관리하기
  • 컨테이너 다루기
  • 리버스 프록시와 로드 밸런서가 다른건가?
khjoon
khjoon
  • khjoon
    기록기록
    khjoon
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • Security (1)
      • Dev (14)
      • Infra (12)
      • Ops (9)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
khjoon
가상화 다루기
상단으로

티스토리툴바