이제 EC2 인스턴스도 생성했으니 생성한 리눅스 서버에 docker를 설치해보자.
패키지 설치
시스템의 패캐지 목록을 최신 상태로 업데이트
sudo apt update
보안과 관련된 인증서와 명령어를 다루는 도구들을 설치
sudo apt install ca-certificates curl gnupg
Docker 키 다운로드
키를 다운받을 디렉토리 생성
sudo install -m 0755 -d /etc/apt/keyrings
docker의 gpg 키를 생성한 디렉토리에 다운받고 해당 키를 디코딩
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
파일에 모든 사용자가 읽기 권한을 부여
sudo chmod a+r /etc/apt/keyrings/docker.gpg
저장소 설정
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
디렉토리의 내용을 확인하여 gpg 키가 잘 다운받아졌는지 확인
ls /etc/apt/keyrings/: /etc/apt/keyrings/
docker를 다운받을 디렉토리 셋팅이 끝난 다음 반영을 위해 업데이트
sudo apt update
Docker 설치
설치항목
docker-ce : Docker의 핵심 엔진으로 컨테이너의 생성, 실행 및 관리에 사용
docker-ce-cli : Docker와 상호 작용하기 위한 Command Line Interface
containerd.io : Docker 컨테이너와 상호 작용하는 데 필요한 컨테이너 런타임
docker-buildx-plugin : Docker의 빌드 프로세스를 향상시키는 다양한 기능 제공
docker-compose-plugin : docker-compose를 사용하기 위한 플러그인
docker-compose : Docker 컨테이터를 정의하고 실행하는 데 사용
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose
설치됐는지 확인
docker version
permission denied 경고창이 뜬다. 사용자가 docker demon에 접근할 권한이 없어서 뜨는 오류로 docker client는 접근할 수 있어 docker client의 정보를 받아오지만 docker engine에 접근하려면 현재 사용자를 Docker 그룹에 추가해야 한다.
현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER
확인
cat /etc/group | grep docker
유저가 잘 추가된 것으로 보인다.
이제 로그아웃 후 다시 로그인 하고 docker version을 확인하면 아래와 같은 화면이 나올 것이다.
docker engine 까지 설치를 완료하였다. 확인을 위해 테스트 이미지를 가동해보겠다.
docker run hello-world
실행 시 노드에 hello-world 이미지가 없어서 먼저 다운을 받는다.
다운로드가 끝나면 hello-world 컨테이너를 통해 Hello from Docker!부터 https://~ 까지 메세지를 출력한다.
이렇게 도커 설치와 테스트를 완료하였다.
'DevOps' 카테고리의 다른 글
[Devops] Containers 컨테이너란? - Containers vs VM (0) | 2024.01.03 |
---|---|
[Devops] GitOps CI/CD 구축하기(1) - EC2 인스턴스 생성, 탄력적 IP 주소 할당 (1) | 2024.01.02 |
[Devops] Kubernetes 쿠버네티스란? (2) | 2023.08.23 |