본문 바로가기

개발 이야기/실무 Recipe

AWS LightSail에서 Docker 설치하기 | 설치 오류 해결

 

 

용량 파악하기

lightsail에서 플랜을 바꾸려면 스냅샷을 생성하고 새 인스턴스를 생성해야 한다. 메모리가 낮은 상태에서 docker를 올리면 인스턴스가 뻗어버리므로 로컬에서 먼저 도커 컨테이너를 띄워보고 얼마나 용량을 차지하는지 확인한다.

docker ps -a

CONTAINER ID   IMAGE           NAME              COMMAND                  CREATED       STATUS      PORTS                            
c8c71bb80138   elasticsearch   elastic_container "/bin/tini -- /usr/l…"   3 days ago    Up 3 days   0.0.0.0:9200->9200/tcp, 9300/tcp   

 

docker stats <실행중인 컨테이너 Name>

CONTAINER ID   NAME                CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O      PIDS
c8c71bb80138   elastic_container   1.10%     1.186GiB / 7.778GiB   15.25%    587MB / 445MB   146MB / 94MB   99

 

 

 

lightsail 플랜 선택

메모리 사용량 확인 후 적당한 플랜을 선택한다. lightsail에서 생성한 스냅샷으로 EC2 인스턴스를 생성할 수도 있다. EC2 인스턴스 비용과 lightsail을 비교해보고 더 나은 것을 선택한다. 나는 비슷한 사양에서 조금 더 저렴한 lightsail을 사용했다.

 

EC2 pricing: 18$/M

 

 

lightsail pricing

 

 

 

만약 기존에 생성한 인스턴스의 플랜을 바꾸려면 스냅샷을 생성한 후, 인스턴스를 새로 생성한다.

 

 

 

 

 

docker, docker-compose 설치

$ sudo apt-get update

# 디펜던시 추가
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# public key 등록
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

$ echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

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

# docker-compose 설치
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 설치 확인
$ docker -v
$ docker-compose -v

 

 

 


 

설치 오류 1: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ...

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

 

 

 

설치 오류 2: https://download.docker.com/linux/ubuntu buster Release not found

1. sudo vi /etc/apt/sources.list

- deb [arch=amd64] https://download.docker.com/linux/ubuntu buster stable 에서 buster를 xenial로 변경

- https://download.docker.com/linux/ubuntu 에서 ubuntu가 debian으로 되어있다면 ubuntu로 변경

deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable 

 

 

 

2. sudo vi /etc/apt/sources.list.d/docker.list

deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu xenial stable

 

 

3. sudo apt-get update

 

 

 

설치 오류 3: docker-ce : Depends: libseccomp2 (>= 2.4.0) but ... is to be installed

http://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp 에서 우분투를 위한 2.4 버전 이상의 libseccomp2을 설치한다. node.js lightsail은 ubuntu 16 또는 18버전을 사용한다.

curl -O http://archive.ubuntu.com/ubuntu/pool/main/libs/libseccomp/libseccomp2_2.4.3-1ubuntu4_amd64.deb

 

- 디패키징: sudo dpkg -i libseccomp2_2.4.3-1ubuntu4_amd64.deb

- 그 다음 다시 sudo apt-get install docker-ce docker-ce-cli containerd.io