출처 : 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를 활용한 다양한 서버를 구축하고 운영 방법들을 알아보았다. 이 지식들이 나와 내 블로그를 보는 분들께서 아키텍트로 성장하는데 도움이 되기를 바란다.
'Study > 이것이 리눅스다 with Rocky Linux 9' 카테고리의 다른 글
19장. PXE 설치 서버 설치 및 운영 - PXE 설치 서버 설정 (0) | 2024.01.13 |
---|---|
18장. 방화벽 컴퓨터 생성 및 운영 (2) - 리눅스 방화벽 구축 (1) | 2024.01.12 |
18장. 방화벽 컴퓨터 생성 및 운영 (1) - 방화벽 개요 (0) | 2024.01.12 |
17장. 프록시 서버 설치 및 운영 - 프록시 서버 구축 (0) | 2024.01.11 |
16장. DHCP 서버 설치 및 운영 - DHCP 서버 구축 (1) | 2024.01.10 |