[GCP]VM(ubuntu OS) Docker 설치하기.(portainer 추가)

Google Cloud Platform을 이용한 NAS 시스템 구축 의 세번째 글입니다.

생각보다 빠르게 진행되고있네요. 물론, 지금까지는 어려운부분도 없는 기본셋팅 수준이였고 제대로 보여줄만한건 나오지 않았습니다.
그래서 이번에 진행할것은 바로 ‘docker’설치 입니다.

docker에 대해 생소하신분들이 있으실것같아서 간단하게 설명을 하자면 docker는 리눅스 OS위에 올라가있는 컨테이너라고 보시면 됩니다. 이 컨테이너에 뭐를 넣을지는 사용자 마음이고 새로운걸 적재할 수도 뺄 수도있습니다.

쉽게말해서 앞서 설치한 nginx처럼 linux 자체에 SW를 설치하는것이 아닌 컨테이너라는 상자에 서비스를 올려서 편하게 관리할 수 있도록 도와줍니다.
위 그림처럽 App A 가 토렌트, App B는 Nextcloud, App C는 DB서버 이렇게 되겠습니다.

그래서 이번시간에는 GCP의 VM 인스턴스에 Docker를 설치하고 도커 관리를 도와주는 Portainer라는 컨테이너를 올려보도록 하겠습니다.
이번 포스팅의 큰 순서는 Docker 설치 -> Portainer 구축 -> 테스트 입니다

Docker 설치하기

이전과 동일하게 필수 패키지먼저 설치하도록 하겠습니다.

필수 패키지 설치

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

GPG Key 인증

문제없이 설치가 다되었으면 Docker의 GPG Key 인증을 하도록 하겠습니다.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

깔끔하게 OK가 나오면 됩니다.

finger print도 확인해봅시다.

sudo apt-key fingerprint 0EBFCD88

docker repository 등록

이제 아키텍쳐에 맞춰서 Docker repository를 등록해주도록 하겠습니다.
혹시 아키텍쳐 확인을 원하시면 arch 명령어를 입력해주시며 됩니다.
저희환경의 경우 x86_64 입니다.

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

위 명령어를 쳤을때 아래처럼 나와야 정상입니다.

apt docker 설치

레포 등록이 완료되었으니 이제 apt 명령어로 설치만 해주면 됩니다.

sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

설치가 완료되면 docker -v 명령어로 확인해봅니다.

이제 시스템 부팅시 docker가 시작되도록 설정하고 실행도 시켜보겠습니다.

sudo systemctl enable docker && service docker start

이렇게 Active가 뜨신다면 docker 서비스 구축까지 완료한것입니다.
이제 다음단계인 portainer를 시작하겠습니다.

portainer 구축하기

사실 portainer의 경우 이전 포스팅에서도 많은 설치를 했기때문에.. 또해야 되나 싶지만 환경이 다르니 또 하겠습니다.
portainer는 docker의 이미지,컨테이너,네트워크등을 쉽게 관리할 수 있게 도와주는 GUI Web 서비스 입니다.

docker의 이미지라는 개념이 생소할 수도있는데 윈도우 설치에 필요한 iso라고 보시면 될거같습니다.
iso로 윈도우를 설치하듯이 이미지로 docker의 컨테이너를 생성하게됩니다. 이 이미지(iso 같은)는 hub.docker.com에서 검색해보면 엄청나게 방대한양의 데이터베이스가 있습니다.

이번에 설치할 portainer도 찾아본다면 아래처럼 나오게 됩니다. 이외에 cent os, nginx, mariadb 등등 docker의 이미지는 엄청많으니 궁금하면 들어가서 찾아보시면 됩니다.

항상 지원하는 아키텍쳐를 확인하는게 좋습니다.

사용법도 들어가면 자세하게 나와있으나.. 양이 방대해서 따로 설명하지않겠습니다.

portainer 컨테이너 설치에 앞서 컨테이너와 host(vm)간에 볼륨매칭을 위한 디렉터리 생성부터 진행하겠습니다.
mkdir -p /data/portainer

그리고 docker run 명령어로 실행시켜주도록 하겠습니다.

docker run --name portainer -p 9000:9000 -d --restart always -v /data/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

이미지는 hub.docker.com 에서 자동으로 Pull 합니다.

길어보이지만 하나씩 설명해보면 –-name 으로 컨테이너 이름 생성, -p 호스트 포트 9000 내부포트 9000번 , -d 데몬으로 백그라운드, –restart always 재부팅시 자동시작, -v /data~~ 호스트와 컨테이너간 볼륨매칭, docker.sock도 마찬가지로 공유, portainer/portainer 이미지 사용순 입니다.

portainer 방화벽 허용 하기

위에서 9000번 port를 사용한다고 했기때문에 방화벽 허용 또한 필요합니다.
기본적으로 ubuntu의 경우 OS 방화벽을 설정하지않아도되고 cent OS는 firewall-cmd 명령어를 통해 방화벽 오픈해야하니 참고하시면됩니다.

저희는 GCP에서 nginx 포트를 오픈했듯 portainer도 똑같이 진행하도록 하겠습니다.

메뉴 > VPC 네트워크 > 방화벽 규칙

방화벽 규칙 만들기 클릭

이름 / 설명은 보기편하게 입력해주세요.

여기가 중요한데 대상 = VM 인스턴스를 의미하고
소스 IP 범위는 9000번 포트 portainer에 접근할수있는 IP입니다. 일단 0.0.0.0으로하고 추후에 자신의 IP를 안다면 그 공인 IP만 설정할것을 추천합니다.(보안상 취약)
포트는 9000

이제 테스트만 해보면 됩니다.

테스트

VM 인스턴스의 외부IP:9000 으로 웹브라우저로 접속합니다.
저같은경우 http://34.70.108.129:9000 입니다.

처음에 관리자 계정 생성해주는데 원하는대로 입력하시면 됩니다.

그 다음 에는 Local Docker와 Connect 입니다.

생성 완료되었습니다.
이제 이곳에서 도커의 이미지와 컨테이너,네트워크를 쉽게 할 수 있습니다.

이제 준비가 얼추 된것같으니 다음 포스팅에서는 본격적으로 하나씩 서비스를 올려보도록 하겠습니다.

//추가 저는 보안을 위해서 집 공인 IP에서만 portainer를 사욯알 수있도록 방화벽 정책을 변경했습니다. 위 방화벽정책 0.0.0.0에서 집 공인 IP 를 입력해주세요.

집 IP 확인 방법 – https://blog.dalso.org/it/8670

진행 순서

  1. [GCP]VM인스턴스 생성하기(Ubuntu OS)
  2. [GCP]VM 인스턴스 고정 IP할당 및 Nginx 설치.
  3. [GCP]VM(ubuntu OS) Docker 설치하기.(portainer 추가)
  4. [GCP]서비스 운영을 위한 무료 도메인 발급받기
  5. [GCP]Docker를 이용한 Torrent 서비스 구축하기.
  6. [GCP]Docker를 이용한 Nextcloud 서비스 구축하기.(MariaDB 추가)
  7. [GCP]Nextcloud 설정 변경하기 및 도메인 SSL,reverse proxy 적용하기.
  8. [GCP]Nextcloud 설치를 위한 PHP, MariaDB 설치하기 + SSL 적용.
  9. [GCP]LEMP 스택으로 Nextcloud 구축.
  10. [GCP]Nextcloud 최적화하기(nginx,php-fpm 설정)
  11. [GCP]Docker를 이용한 Jellyfin 서비스 구축하기.
  12. [GCP]Docker를 이용한 PLEX 서비스 구축하기.
  13. [GCP]Nextcloud를 이용해 Webdav 사용하기.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

홈서버 IT 커뮤니티 SVRFORUM
Link