준비 : EC2에 ssh로 접속한다.

 

Docker 설치

1. 패키지 업데이트 

sudo apt-get update

2. https관련 패키지 설치

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

3. docker repository 접근을 위한 gpg 키 설정

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

4. docker repository 등록

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

5. 다시 패키지 업데이트

sudo apt update

6. 도커 설치

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

7. 설치 확인

sudo docker --version

8. 도커로 hello-world 이미지 구동해봄

sudo docker run hello-world

9. 아래와 같은 메시지가 나오면 성공!

latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:926fac19d22aa2d60f1a276b66a20eb765fbeea2db5dbdaafeb456ad8ce81598
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

Docker-compose 설치

docker-compose를 standalone 방식으로 설치하는 방법이다.

 

1. Compose standalone을 다운로드하고 설치

sudo curl -SL https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2. 설치한 파일에 실행권한 추가

sudo chmod +x /usr/local/bin/docker-compose

3. 어느 위치에서든 docker-compose 명령을 사용하고 싶으면, 아래 심볼릭 링크 추가

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4. docker-compose 버전 확인

sudo docker-compose -v

 

sudo 없이 docker 명령어 사용하기

1. 현재 사용자를 docker group에 포함

sudo usermod -aG docker ${USER}

사용자명이 ubuntu라면,

sudo usermod -aG docker ubuntu

2. 터미널 재시작 후 결과 확인(끝에 docker가 있는지 확인)

id -nG

 

참고

https://velog.io/@osk3856/Docker-Ubuntu-22.04-Docker-Installation

https://docs.docker.com/compose/install/standalone/

https://everydayyy.tistory.com/121

문제상황

EC2 서버에 접속시, 인스턴스를 시작시 생성한 key pair 이용한다.

이 때 해당 key로 ssh 접속은 잘 되는데, putty로 접속하려고 하면 'server refused our key' 라는 메시지가 뜨면서 접속이 안된다.

(기본적인 연결 설정은 모두 다 했다. PuTTYgen을 이용하여 프라이빗 키 .pem을 ppk로 변경하고 키 파일경로 설정, 올바른 username 입력 등. 방법은 다음 링크 참고 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/putty.html)

 

그래도 연결이 안되고, 서버쪽 로그를 살펴보면 아래와 같은 로그가 남아있다.

userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
sshd[15855]: error: Received disconnect from xxx.xxx.xxxx port 51001:14: No supported authentication methods available [preauth]

 

해결방법

ssd_config를 수정 후, sshd를 재실행 해주니 putty 접속이 된다.

 

1. /etc/ssh/sshd_config를 아래와 같이 수정해준다.

# /etc/ssh/sshd_config
PubkeyAuthentication yes # 주석을 풀어, PubKeyAuthentication을 허용해준다.
PubkeyAcceptedKeyTypes=+ssh-rsa	# 이 내용을 추가해준다.

 

2. sshd를 재실행 한다. (ubuntu 에서의 명령어)

$ sudo systemctl restart sshd

 

3. putty로 다시 접속 해본다.

문제상황

웹브라우저에서 AWS 관리 콘솔로 EC2에 연결하려고 할 때, 아래와 같은 메시지가 뜨며 연결이 안되는 경우가 있다.

원인

브라우저 기반 SSH 연결은 EC2 Instance Connect 서비스를 통해 사용자의 인스턴스를 리다이렉션하여 접속하게 된다고 한다.

따라서 내 PC의 IP 주소가 아닌, EC2 인스턴스가 위치하는 리전의 AWS IP 주소를 해당 EC2 인스턴스의 Security Group에 할당해 주어야 한다.

  • 한국 리전에서 사용하는 AWS IP : 13.209.1.56/29

해결방법

1. EC2 서비스 클릭 > 좌측 [네트워크 및 보안] 메뉴 하위의 [보안 그룹] 클릭 하여 보안그룹 메뉴로 이동

 

2. 접속하려는 EC2 인스턴스에 적용되는 보안그룹에 체크 > [인바운드 규칙] 클릭 > [인바운드 규칙 편집] 클릭

 

3. [규칙 추가] 클릭

4. 아래와 같이 인바운드 규칙 추가 후 [규칙 저장] 클릭

5. 다시 [연결] 클릭해서, 인스턴스에 연결해봄

6. 아래와 같이 연결됨

참고

https://support.skdt.co.kr/ko/support/solutions/articles/42000093546--ec2-aws-%EA%B4%80%EB%A6%AC-%EC%BD%98%EC%86%94-%EC%9B%B9%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%97%90%EC%84%9C-ec2%EC%97%90-%EC%97%B0%EA%B2%B0%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4-

+ Recent posts