putty 를 이용해서 구입한 호스팅 서버에 접근 한다.

호스팅 주소는 신청당시 사용한 id.cafe24.com 으로 접속해서, 

id : root

pwd : 호스팅 신청 당시 설정한 root 비밀 번호 입력 합니다.

설치전 update 명령어로 ubuntu에 설치된 패키지 들의 정보를 update 합니다.

저 같은 경우 10분 정도 걸린거 같아요.

- update 명령어 : apt update & apt upgrade

curl 명령어를 사용해서 get-docker.sh 파일을 받는다.

현재 curl 명령어를 사용할 수 없다고 나오기에 curl 을 설치 해 주도록 한다.

- 도커 설치 파일 다운로드 명령어 : curl -fsSL https://get.docker.com -o get-docker.sh

Command 'curl' not found, but can be installed with:

apt install curl

현재 curl 명령어를 사용할 수 없다고 나오기에 curl 을 설치 해 주도록 한다.

- curl 설치 명령어 : apt install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-5.4.0-37 linux-headers-5.4.0-37-generic linux-image-5.4.0-37-generic linux-modules-5.4.0-37-generic linux-modules-extra-5.4.0-37-generic
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  libcurl4
The following packages will be REMOVED:
  libcurl3
The following NEW packages will be installed:
  curl libcurl4
0 upgraded, 2 newly installed, 1 to remove and 283 not upgraded.
Need to get 396 kB of archives.
After this operation, 479 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 libcurl4 amd64 7.68.0-1ubuntu2.15 [235 kB]
Get:2 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 curl amd64 7.68.0-1ubuntu2.15 [161 kB]
Fetched 396 kB in 3s (156 kB/s)
(Reading database ... 111939 files and directories currently installed.)
Removing libcurl3:amd64 (7.58.0-2ubuntu2) ...
Selecting previously unselected package libcurl4:amd64.
(Reading database ... 111932 files and directories currently installed.)
Preparing to unpack .../libcurl4_7.68.0-1ubuntu2.15_amd64.deb ...
Unpacking libcurl4:amd64 (7.68.0-1ubuntu2.15) ...
Selecting previously unselected package curl.
Preparing to unpack .../curl_7.68.0-1ubuntu2.15_amd64.deb ...
Unpacking curl (7.68.0-1ubuntu2.15) ...
Setting up libcurl4:amd64 (7.68.0-1ubuntu2.15) ...
Setting up curl (7.68.0-1ubuntu2.15) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...

설치가 완료 되면 curl 을 이요해 설치 파일을 다운로드 한다.

- 도커 설치 파일 다운로드 명령어 : curl -fsSL https://get.docker.com -o get-docker.sh

설치 파일을 다운로드 했으면 실행 한다.

- 실행 명령어 : sudo sh get-docker.sh
# Executing docker install script, commit: 66474034547a96caa0a25be56051ff8b726a1b28
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c mkdir -p /etc/apt/keyrings && chmod -R 0755 /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu focal stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-scan-plugin docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           23.0.1
 API version:       1.42
 Go version:        go1.19.5
 Git commit:        a5ee5b1
 Built:             Thu Feb  9 19:46:56 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          23.0.1
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.19.5
  Git commit:       bc3805a
  Built:            Thu Feb  9 19:46:56 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.16
  GitCommit:        31aa4358a36870b21a992d3ad2bef29e1d693bec
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

설치가 완료 된다면 도커 버전을 확인해 본다.

- 도커 버전 확인 명령어 : docker --version
Docker version 23.0.1, build a5ee5b1

필수 패키지 들을 설치 합니다.

- 설치 명령어 : sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

GPG Key 인증

- 인증 명령어 : curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

명령어 사용시 OK 가 확인 되면 완료.

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 설치

명령어 : sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

실행 결과 : 

설치 정상 확인 명령어 : docker -v 

시스템 재 부팅시 실행 되도록 설정 합니다.

설정 명령어 : sudo systemctl enable docker && service docker start

도커 서비스 상태 확인 : service docker status

active 까지 나오는걸 확인 했으면 docker 서비스 구축이 완료 되었습니다.

 

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

- portainer 실행 명령어 : 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

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

실행이 완료 되면 url로 접속을 해 봅니다.

ip:9000 으로 접속 해 봅니다.

처음 관리자 아이디, 패스워드를 설정 합니다.

생성 완료 후 페이지

"Get Started" 클릭을 하게 되면 아래와 같이 local 도커가 연결된 것을 확인 할 수 있습니다.

서비스를 올려 보도록 하겠습니다.

제 목적은 docker 를 통해 spring boot 서버와 react 서버를 올리는 것이기에 2개의 서비스를 필요로 합니다.

왼쪽 메뉴중 Containers 를 클릭시 현재 실행되고 있는 컨테이너를 확인 할 수 있습니다.

오르쪽 상단위 Add container를 통해 신규 컨테이너를 GUI로 만들 수 있습니다.

또는 이미지 추가로 도커의 허브에 있는 공개되어 있는 이미지 들을 추가 해서 사용 할 수 있습니다.

2편 도커에 gradle, git, open jdk17, nodejs, react 추가 하기

 

참고 : 도커 기본 명령어 모음

참고 사이트 : 서버포럼 - Docker Web GUI 관리 툴 Portainer 설치하기.(+ 도커 설치하기) (svrforum.com)

Posted by 블로그하는프로그래머
,