728x90
728x90

애저(Azure)를 이용하여 우분투 VM을 배포하고, 도커(Docker) 구축하기

들어가며

  • 애저(Azure)를 이용하여 우분투(Ubuntu) VM을 배포하고, 도커(Docker)를 구축해보자.

 

도커(Docker)

Docker Logo
  • 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너(Container)로 실행하고 관리하는 오픈 소스 프로젝트
  • 도커는 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다.
  • 독립적인 '컨테이너'가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지 보수해야 하는 부담을 없애준다.
 

GitHub - moby/moby: Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems - GitHub - moby/moby: Moby Project - a collaborative project for the container ecosystem to as...

github.com

 

참고 사이트

 

도커 (소프트웨어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 도커(Docker)는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다. 도커 웹 페이지의 기능을

ko.wikipedia.org

 

Docker: Accelerated, Containerized Application Development

Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

 

실습하기

애저 포털에서 우분투(Ubuntu) VM 생성 및 배포하기

  • 애저 포털에서 우분투(Ubuntu) 가상 머신(VM)을 생성하고 배포한다.


 

 

 

 

터미널을 이용하여 애저에 올린 우분투 VM에 접속하기

  • 터미널에서 아래의 명령을 입력하여 애저에 올린 우분투 VM에 접속한다.
> ssh 관리자ID@가상머신_공용IP주소
VM 리소스 페이지 왼쪽의 [연결] 탭을 클릭한 후, 터미널에 입력할 명령을 확인한다.

 

터미널에서 작업하기

리눅스 업그레이드(업데이트) 하기

  • 우선, 다음 명령을 실행하여 리눅스 머신을 최신 버전으로 업데이트해 준다.
$ sudo apt-get update

 

$ sudo apt-get upgrade

 

도커 설치 환경 구축하기

  • 다음 명령을 실행하여 우분투 도커(Docker)를 설치해 보자.
  • 우선, 다음 명령을 실행하여 (혹시나 설치되어 있는) 도커의 오래된 버전을 제거한다.
$ sudo apt-get remove docker docker-engine docker.io containerd runc

 

  • 그리고 도커를 설치하기에 앞서, 다음 명령을 실행하여 도커를 설치하기 위해 필요한 패키지들을 설치한다.
$ sudo apt-get install \
> apt-transport-https \
> ca-certificates \
> curl \
> gnupg \
> lsb-release

 

  • 그리고 다음의 명령들을 실행하여 도커의 공식 GPG 키를 추가한다.
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

 

GPG(GNU Privacy Guard)
  • GNU에서 제공하는 OpenPGP(RFC4880)의 오픈소스 구현
  • 개인 간, 머신 간 또는 개인 - 머신 간에 교환되는 메시지나 파일을 암호화하거나 서명을 추가하여 작성자를 확인하고 변조 유무를 식별할 수 있게 해주는 도구
  • 기본적으로 RSA와 같은 공개 키 암호화 방식을 사용하여 종단 간 파일이나 메시지를 암호화하거나 서명하는 기능 제공
  • 참고 사이트 : 클릭

 

  • 레포지토리를 구성하기 위해 다음의 명령을 실행한다.
$ echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

 

도커와 레포지토리(Repository)
  • 개발자들은 환경을 설정한 후, 결과물을 레포지토리에 넣는다. 서버는 레포지토리에 있는 것을 끌여와 사용한다.
    • 개발 PC → 레포지토리 → Server
  • 레포지토리 종류
    • Local
    • Cloud (ACR(Azure Container Registry))
    • Docker Hub

 

  • 이로써 도커 설치를 위한 환경을 구축하였다. 이제 도커를 설치해 보자.

 

도커 설치하기

  • 지금까지 몇 가지 변화가 있었으므로, 다음 명령을 실행하여 업데이트할 것이 있는지 체크하고 업데이트한다.
$ sudo apt-get update

 

  • 다음 명령을 실행하여 Docker Engine, containerd, Docker Compose를 설치한다.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

  • 다음과 같이 @docker@ 명령을 실행해 본다.
$ docker

docker 명령을 실행한 후의 모습. 성공적으로 설치되었음을 알 수 있다.

 

  • 도커 엔진이 성공적으로 설치되었는지 검증하기 위해 @hello-world@ 안내문을 띄우는 다음 명령을 실행한다. 권한이 없다는 안내문(@permission denied.@)이 출력된다.
$ docker run hello-world

'permission denied.' 라는 안내문이 출력된다.

 

@sudo@ 없이 명령어 실행하기 (일반 유저에게 @sudo@ 권한 주기)
  • 매번 명령 앞에 @sudo@를 붙여서 실행하는 것은 정말 번거롭다. @sudo@를 입력하지 않고도 명령을 실행할 수 있도록 하기 위해, 일반 유저에게도 @sudo@의 권한을 주도록 해보자. 다음 명령을 실행한다.
$ sudo usermod -a -G docker $USER

 

  • 그리고 다음 명령을 실행하여 도커 서비스를 다시 시작해준다.
$ sudo service docker restart

 

  • 다시 아래의 명령을 실행해본다. 아직도 권한이 없다는 안내문이 출력된다. 
$ docker run hello-world

 

  • 원격 접속을 해제하고 다시 접속해주자. 다음 명령을 실행하여 원격 접속을 해제한다.
$ exit
> ssh 관리자ID@가상머신_공용IP주소

원격 접속을 해제하고 다시 접속하는 모습

 

  • 다시 다음 명령을 실행하여 @hello-world@ 안내문을 출력해본다.
$ docker run hello-world

 

  • 명령을 실행하면 레포지토리(Repository)에서 다운로드 받고, 그 이미지를 끌어와서 실행하는 것이다.

 

참고
  • 우분투도커 설치와 관련된 내용은 아래의 공식 문서를 참고한다.
 

Install Docker Engine on Ubuntu

 

docs.docker.com

 

  • 다음 명령을 입력하여 도커 버전을 확인할 수 있다.
$ docker --version

 

  • 도커의 특정 명령문에 대해 궁금한 점이 있다면, 다음과 같이 맨 끝에 @--help@를 붙여서 명령을 실행한다.
$ docker pull --help

 

참고 사이트

도커 공식 문서
 

Docker Docs: How to build, share, and run applications

 

docs.docker.com

 

728x90
728x90