20장. 리눅스 가상화 기술 - 도커 설치와 운영

728x90
반응형

출처 : https://www.youtube.com/watch?v=VH3ehQzlO3M&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=76

 

 

도커의 개념과 실습

  • 도커
    • 작은 운영체제를 포함하는 가상화 기술이다.
    • VMware나 VirtualBox의 가상 컴퓨터는 완전한 OS를 포함하는 독립된 컴퓨터로 간주되며 상당히 무겁지만 도커는 훨씬 가볍게 운영된다.
    • 도커에서 사용되는 작은 컴퓨터를 컨테이너라 부른다.

 

가상 컴퓨터와 컨테이너 차이

 

예를 들어, 12장에서 배운 웹 개발 환경인 APM 환경을 여러 개발자가 사용할 수 있도록 동일하게 구성해야 한다고 가정해보자. 물리적인 컴퓨터에 설정하려면 어쩔 수 없이 컴퓨터마다 웹 개발 환경을 설치하고 구성해야 한다. 상당히 오랜 시간이 걸릴 수 밖에 없다.

 

이러한 문제를 해결하기 위해 차선책으로 VMware, VirtualBox 로 가상 컴퓨터를 사용하는 방법을 선택할 수 있다. 위 그림의 왼쪽에 있는 가상 컴퓨터를 설치한 후 그 안에 웹 개발 환경을 구성한다. 그리고 가상 컴퓨터를 통째로 다른 개발자에게 복제하는 방식을 사용하면 된다. 이러한 방식이 지금까지 사용한 VMware, VirtualBox 등의 가상 컴퓨터 방식이다. 이 방식의 문제점은 웹 개발 환경만 필요한데도 완전한 운영체제가 설치된 무거운 가상 컴퓨터를 함께 복제해야 한다는 것이다.

 

이와 달리 무거운 가상 컴퓨터보다 훨씬 가벼운 컨테이너 안에 웹 개발 환경을 구성한 후 컨테이너만 복제하는 방법을 사용할 수 있다. 컨테이너 역시 독립된 운영체제 환경과 거의 비슷하게 별도로 작동하므로 가상 컴퓨터와 비슷한 효과를 가지면서도 빠른 배포가 가능하다.

 

 

도커 컨테이너 실습

  • 도커(https://www.docker.com)의 저장소에는 많은 컨테이너가 업로드되어 있다.
  • 도커 회사 자체에서 업로드한 컨테이너도 있고, 많은 사용자가 만들어서 업로드한 컨테이너도 있다.
  • Rocky Linux 환경에서 우분투 리눅스의 Bash 셸을 사용해야 하는 상황이라고 가정
    • 방법 1: Virtual Box를 통해 우분투 호스트 컴퓨터에 우분투 게스트 컴퓨터를 만들고 사용. 단지 우분투의 Bash 셸 만을 사용하기 위해 무거운 가상 컴퓨터를 생성하는 것은 다소 낭비
    • 방법 2: Bash 셸만 들어 있는 작은 우분투 컨테이너만 다운로드

 

도커의 설치와 사용

 

실습 목표

  • Server에 도커를 설치하고 사용한다.

 

 

도커 설치

Server 가상 머신을 설치 상태로 초기화하고 부팅한 다음, root 사용자로 접속한다.

 

 

도커 저장소를 추가한다.

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

 

 

도커 패키지를 설치한다.

dnf -y install docker-ce docker-ce-cli containerd.io

 

 

도커 서비스를 재시작하고 상시 가동되도록 설정한다. 상태를 확인해 docker가 잘 동작하는지 확인한다.

systemctl restart docker
systemctl enable docker
systemctl status docker

 

 

도커가 잘 동작하는지 확인한다. 위 그림과 같이 Hello from Docker! 가 출력되면 잘 동작하는 것이다.

docker run hello-world

 

 

파이어폭스 웹 브라우저를 열고 https://hub.docker.com 으로 들어가 ubuntu를 클릭한다. 우측 상단에 docker pull ubuntu를 복사한다.

 

 

터미널에 복사한 docker pull ubuntu 를 붙여넣기 한다. 그러면 우분투 이미지를 다운로드한다. 그러면 우분투 컨테이너가 하나 추가가 된 것이다.

docker pull ubuntu

 

 

컨테이너를 실행한다. 실행하면 프롬프트가 바뀔 것이다. 즉, ubuntu의 bash 셸로 들어간 것이다.

이러면 우분투의 Bash 셸 명령을 사용할 수 있다. 현재 우분투의 버전을 확인하면 22.04.3 LTS 버전으로 설치되었다.

exit 명령을 입력해 컨테이너를 종료한다.

docker run -it ubuntu bash
cat /etc/issue
exit

 

이렇게 docker를 사용하면 ubuntu를 따로 설치하지 않고도 ubuntu의 Bash 셸을 사용할 수 있다.

 

 

docker images 명령을 입력하면 현재 설치된 컨테이너의 이름, ID, 크기 등을 확인할 수 있다. 앞에서 다운로드한 ubuntu와 hello-world 2개의 컨테이너가 확인된다.

docker images

 

 

 

현재 설치된 컨테이너의 상세한 정보를 확인하려면 docker container ls -a 명령을 입력하면 된다. 이러면 컨테이너 목록이 표시된다.

 

또한 컨테이너 이미지를 삭제하려면 docker rm 컨테이너ID 명령을 입력하면 된다. hello-world 컨테이너를 삭제하려면 docker rm 42e2a4a16eee 를 입력하면 된다.

 

docker images는 적용되는게 조금 느리지만 docker container ls -a 명령으로 확인하면 hello-world 컨테이너가 삭제된 것을 바로 확인할 수 있다.

docker container ls -a
docker rm 컨테이너ID

 

 

이렇게 Rocky Linux를 활용한 다양한 서버를 구축하고 운영 방법들을 알아보았다. 이 지식들이 나와 내 블로그를 보는 분들께서 아키텍트로 성장하는데 도움이 되기를 바란다.

 

 

728x90
반응형