AWS EC2 Docker 설치

1. 패키지 업데이트

$ sudo apt update

2. https관련 패키지 설치

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

 

명령어 구성

  • apt-transport-https: APT가 HTTPS 프로토콜을 통해 패키지를 다운로드할 수 있도록 지원하는 모듈. HTTPS는 패키지 다운로드 시 데이터 암호화를 제공하므로 더 안전한 방법.
  • ca-certificates: HTTPS 연결을 위해 필요한 인증서를 제공하는 패키지. 시스템에서 신뢰할 수 있는 인증서를 관리하여 안전한 네트워크 통신을 지원.
  • curl: 커맨드 라인 기반 파일 전송 도구로, HTTP, HTTPS, FTP 등의 프로토콜을 지원.
  • software-properties-common: PPA(Personal Package Archive)를 쉽게 관리할 수 있는 유틸리티. 외부 소프트웨어 저장소를 추가하거나 관리할 때 필요한 명령(add-apt-repository)을 제공.

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

Docker의 GPG 키란?
Docker의 GPG 키는 Docker 저장소에서 제공하는 소프트웨어 패키지의 출처와 무결성을 보장하기 위해 사용되는 디지털 서명 키입니다. GPG 키는 GNU Privacy Guard(GPG)를 기반으로 한 암호화 기술로, 패키지 관리자가 패키지의 신뢰성을 확인하는 데 사용됩니다.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 

명령어 구성

  • -f: 실패 시 오류 메시지를 반환.
  • -s: 작업을 조용히 수행하며, 진행 상태나 오류를 출력하지 않음.
  • -S: 오류. 발생 시 세부 메시지를 출력(보통 -s와 함께 사용).
  • -L: 요청한 URL이 리다이렉션될 경우, 최종 URL로 자동 이동.
  • https://download.docker.com/linux/ubuntu/gpg: Docker의 GPG 키를 제공하는 URL
  • |(pipe): curl 명령의 출력을 다음 명령으로 전달.
  • sudo apt-key add: apt-key 커맨드는 APT 패키지 관리자가 사용하는 키를 관리. 
  • -: 표준 입력(STDIN)을 의미. curl에서 전달된 데이터를 키로 추가

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 install docker-ce

7. 설치 확인

$ docker --version

 

Docker 권한 추가

1. user id 확인

다음 커맨드에서 ubuntu(@앞에 위치)는 현재 AWS EC2 인스턴스에 접속하려는 user id 임.

$ ssh -i ./development/Tools/aws_ec2_keys/kafkaserverkey.pem ubuntu@3.38.108.0

2. 1의 커맨드로 해당 AWS EC2 인스턴스에 접속한 다음, group을 확인

$ sudo groups $USER

명령어 구성

  1. sudo:
    • 관리자 권한으로 명령어를 실행합니다. groups 명령을 실행하는 데 관리자 권한이 필요한 것은 아니지만, 습관적으로 sudo를 사용한 것일 수도 있습니다.
  2. groups:
    • 현재 사용자가 속한 모든 그룹을 확인하는 명령어입니다.
  3. $USER:
    • 현재 로그인한 사용자의 사용자 이름을 참조하는 환경 변수입니다.
    • 여기서는 로그인한 사용자 계정이 ubuntu이므로 $USER는 ubuntu를 의미합니다.

결과적으로, sudo groups $USER는 현재 로그인한 사용자가 속한 그룹을 관리자 권한으로 확인하는 명령어입니다.

출력 설명

ubuntu : ubuntu adm cdrom sudo dip lxd

 

이 결과는 ubuntu 사용자 계정이 다음 그룹들에 속해 있음을 보여줍니다:

1. ubuntu (디폴트 그룹)

  • 사용자의 디폴트 그룹으로, 파일 생성 시 디폴트로 소속되는 그룹입니다.
  • ubuntu 사용자의 홈 디렉토리 /home/ubuntu와 같은 파일의 소유 그룹도 보통 이 그룹입니다.

2. adm (관리 그룹)

  • 로그 파일을 읽을 수 있는 권한을 가진 그룹입니다.
  • 예: /var/log/syslog 또는 /var/log/auth.log와 같은 시스템 로그 파일은 기본적으로 adm 그룹만 읽을 수 있습니다.

3. cdrom (CD-ROM 액세스 그룹)

  • CD-ROM 드라이브를 사용할 수 있는 권한을 제공합니다.
  • 현재는 거의 사용되지 않는 그룹이지만, 시스템에서 미디어를 마운트하는 데 필요할 수 있습니다.

4. sudo (관리자 권한 그룹)

  • sudo 명령을 사용하여 루트 권한을 얻을 수 있는 그룹입니다.
  • 이 그룹에 속해 있으면 sudo를 사용해 시스템 관리자 작업을 수행할 수 있습니다.

5. dip (네트워크 설정 그룹)

  • Dial-up IP 연결 권한을 가진 그룹입니다.
  • 예전에는 모뎀 네트워크 연결을 설정할 때 사용되었지만, 오늘날에는 드물게 사용됩니다.

6. lxd (LXD 컨테이너 관리 그룹)

  • LXD 컨테이너 관리 권한을 가진 그룹입니다.
  • 이 그룹에 속하면 LXD(Linux Containers Daemon)를 사용해 컨테이너를 생성하고 관리할 수 있습니다.

명령 실행 후 출력 해석

  • 결과적으로 이 명령은 현재 사용자가 속한 모든 그룹을 출력하며, 각 그룹은 특정 권한이나 역할과 관련되어 있습니다.
  • ubuntu 사용자는 시스템 관리 작업(sudo), 로그 파일 접근(adm), 그리고 컨테이너 관리(lxd)와 같은 여러 중요한 작업을 수행할 수 있는 권한을 가지고 있음을 알 수 있습니다.

추가 설명

  • 이 명령은 특정 사용자가 시스템에서 어떤 작업을 수행할 수 있는지를 파악하기에 유용합니다.
  • 그룹 관리를 통해 시스템 보안을 강화하거나 특정 작업을 제한할 수도 있습니다.

3. docker 그룹 생성

$ sudo groupadd docker

 

다음과 같이 docker 그룹 생성 확인

$ cat /etc/group

 

4. docker 그룹에 user 추가

$ sudo usermod -a -G docker $USER

 

다음 커맨드로 위 커맨드의 실행 성공 여부를 확인

$ getent group docker

 

5. AWS EC2 인스턴스 재부팅 혹은 ssh 접속 종료 후 재접속

다음 커맨드는 인스턴스 재부팅

$ sudo reboot

 

다음 커맨드는 ssh 접속 종료

$ exit

'AWS' 카테고리의 다른 글

AWS EC2 Network 설정  (0) 2024.11.11
AWS S3 인스턴스 생성 및 IAM 그리고 Access/Secrete Key 생성  (0) 2024.11.11
AWS의 S3(Simple Storage Service)  (3) 2024.11.08

+ Recent posts