Docker를 설치하긴 했는데, Docker를 핸들링하려면 매번 Command Line으로 마술부리듯 끊임없이 입력해야 한다. 물론 Command Line 입력 작업이 매우 직관적이기 때문에, 명령만 잘 구성한다면 매우 편리하게 사용할 수도 있다. 하지만, Windows 기반의 GUI 프로그램에 익숙해져버린 나 같은 경우 이 명령창 기반의 작업은 Docker를 전체적으로 관리할 때 매우 어려움이 컸다. 이전 상태 값에 대한 파악을 하려고 할 때마다 명령을 넣어 이리저리 컨텍스트를 매 순간 순간 마다 입력해서 확인해야 했기에 기억력이 떨어지면 이 내용을 자주 놓치고 반복하게 된다.  그래서 GUI 기반의 도구를 찾아보다가, Portainer 라는 제품을 확인했고, 이 Open Source 기반의 도구라면 Docker의 관리가 편해질 것 같아 설치를 진행해본다. 

다만, 이 글 역시 밑의 글 처럼 다른 블로그의 포스트 된 내용을 적용해보고 내 나름대로 정리했다.
원본 글은 아래의 URL을 통해 접근이 가능하다.

psychoria.tistory.com/684

 

[자작NAS] 우분투 서버에 Docker로 Portainer 설치

Portainer는 웹 기반의 도커 관리 툴입니다. 웹 기반이기 때문에 편리한 접근성을 제공하는 점이 강점입니다. 우분투 서버에 Portainer를 설치하는 방법은 다음과 같습니다. Portainer는 도커 관리 툴인

psychoria.tistory.com

 

시작 전 확인 내용

사실 자신이 사용하고 있는 운영체제 및 설정 값은 각기 다른 모습을 갖추고 있어 딱 이것이다 라는 글을 찾기가 매우 어렵다. 내가 여기에 적은 글도 수많은 상황 중 하나일 뿐이다. 

운영체제는 Ubuntu 이며 ubuntu-20.04.1-live-server-amd64.iso 이미지로 설치했다.

클린 인스톨 상태에서 docker-ce를 설치했으며 현재 버전 아래와 같다.

Client: Docker Engine - Community
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        55c4c88
 Built:             Tue Mar  2 20:18:20 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.5
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       363e9a8
  Built:            Tue Mar  2 20:16:15 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

 그리고 Docker의 편의를 위해 Docker 그룹에 내 아이디도 포함시켰다. 

설치 전 단계

Potainer를 설치 구성하기 전에, 이 Potainer에서 사용되는 각종 설정값, 데이터들을 저장하기 위한 폴더를 정의해 주는 것이 좋다. 안그러면 Potainer의 가상 HDD 내에 저장되게 되는데, 이 안의 내용을 접근하려면 생각보다 번거롭다. 그래서 데이터 부분만을 저장하기 위한 디렉토리를 생성한다. 나 같은 경우에는 var를 잘 이용하기 때문에, var 안에 디렉토리를 생성했다.

sudo mkdir -p /var/portainer/data

다음에는 바로 이미지를 자동으로 다운 받아 설치되어 실행되게 명령을 넣는다.

docker run -d -p 8888:9000 --name=portainer --restart=unless-stopped -v /var/run/docker.sock:/var/run/docker.sock -v /var/portainer/data:/data portainer/portainer

명령 줄이 매우 긴데.. 그 중 몇가지만 짚어서 설정해주면 된다.

-p 8888:9000

이 옵션에서 앞의 숫자와 뒷 숫자를 ":" 로 구분한다. 여기서 앞의 숫자는 외부에서 접근할 때의 포트 번호고 뒷 숫자는 Docker Container, 여기서는 Potainer 가상 머신의 포트 번호를 의미한다. 이 옵션이 없으면 Potainer의 9000번 포트를 접근할 수 없다. 바깥에서 보이는 포트를 Container 안의 포트와 연결해주는 작업으로 이해하면 된다.

-v /var/portainer/data:/data

거의 맨 뒤쪽의 옵션인데 -v 로 되어 있으며, 앞의 포트 처럼 ":"를 중심으로 두개의 경로가 있다. 이 중 앞의 경로가 Docker가 실행되고 있는 호스트 컴퓨터의 경로이고, 뒤의 경로가 Container 내부에서 사용되는 경로이다. 즉 /var/potainer/data 라는 디렉토리를 Portainer Container에서 /data 처럼 쓰겠다라는 의미가 된다. 앞의 설치 단계에서 만든 경로를 넣어주면 된다. 

자 명령이 완성되어 입력하면 자동으로 이미지를 다운 받고, 자동으로 실행된다.  실행되고 있는지 확인하고 싶으면 아래와 같이 명령을 넣어보면, 결과를 볼 수 있다.

docker container ls

 

사이트 접속하기

Docker가 실행 중인 PC의 아이피 주소에 8888 포트를 넣어 접속하면 아래와 같이 사이트에 접속이 된다.

http 기반으로 접속이 되며, 맨 처음 접속하는 순간 관리자 계정을 최초로 생성하기 위한 화면이 뜬다. Username은 기본값으로 admin으로 되어 있다. 바꿔도되긴 하는데, 그대로 둬도 무방하다. 그리고 계정에 대한 암호를 만들라고 나오게 된다. 암호를 적절히 만들어 넣고, "Create user"를 한다.

다음에는 이 Portainer 사이트가 관리할 Docker의 사이트 정보를 넣도록 하는 부분이 있다. 원격에 있는 Docker를 설정할 수도 있고, Agent를 기반으로 할 수 있으며, 심지 Azure와도 연계가 된다. 다만 여기서는 현재 설치된 Docker를 관리할 것이므로 Local을 선택한다. (이를 위해서 위의 docker run 할 때 옵션에  socker 부분에 대해 -v 옵션으로 설정해서 실행한 것이다.)

이제 Connect를 눌러보자

그러면 현재 Docker 서버의 Overview를 볼 수 있으며, 그 안에 들어가서 각종 Container나, Image 등을 확인해볼 수 있다.

 

정리하면...

물론 아예 Docker의 이해가 없이 쭉 따라하기 식으로 구축해도 무방하긴 한데, 이 Portainer를 사용하려면, 어느정도의 Docker의 이해가 필요하다. 일단 설치를 하더라도, 가급적이면 명령어 기반의 동작 방식을 어느 정도는 연습을 하는 것을 추천한다. 나 역시도 다양한 명령을 입력해보고, Docker를 이리저리 사용하면서 조금씩 기능을 깨닫는 부분이 있었다.

 

728x90

+ Recent posts