개발 기록
> [Docker] Ubuntu에 Docker 설치하기 본문

☞ 설치 방법
ⓛ Linux Docker Desktop 설치(Docker 엔진 번들로 제)
② Docker apt repository 사용하여 Docker 설치
:도커 저장소를 설정하고 해당 저장소에서 설치한다. 가장 권장되는 방법이다.
③ 수동 설치 (download the deb file and install)
:deb 파일을 다운로드 및 설치한다. 업그레이드 또한 수동으로 관리한다. 인터넷에 접속할 수 없는 환경에 유용하다.
④ 스크립트 사용(테스트 및 개발 환경에서 권장)
아래는 apt 저장소를 사용하여 설치한 방법이다.
●
1. 충돌 방지를 위한 이전 버전 제거
sudo apt-get remove docker podman-docker docker-engine docker.io docker-doc docker-compose-v2 docker-compose containerd runc
도커를 제거해도, 저장된 이미지, 컨테이너, 볼륨 및 네트워크는 자동으로 제거되지 않는다.
만일 기존 데이터까지 삭제할 경우 아래 명령어를 실행하면 된다.
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
●
2. Docker apt 저장소 설정
Docker 엔진을 설치하기 전에 Docker 저장소를 설정해야한다. 그래야 리포지토리에서 Docker를 설치하고 업데이트할 수 있다.
1. apt 업데이트 및 인증 패키지 설치
sudo apt-get update
# https를 통해 저장소를 사용할 수 있도록 인증서 설치
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
2. Docker 공식 GPG 키 추가
# 0755 권한: 소유자(읽기r, 쓰고w, 실행x), 그룹 (r+x), 그외(r+x)
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 모든 접근에 대해 읽기 권한만 부여
sudo chmod a+r /etc/apt/keyrings/docker.asc

GPG 키가 추가된 것을 확인하려면 아래 명령을 실행하여 확인 할 수 있는데 출력결과 deprecated 됬다고 나온다.

3. 다음 명령을 사용하여 리포지토리 설정
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

만일 아래 error 발생하면 DNS가 제대로 잡히지 않았던 원인이므로 "sudo vim /etc/resolv.conf" nameserver 8.8.8.8로 변경하면 된다. (참고)
| W: Some index files failed to download. They have been ignored, or old ones used instead. |
4. apt 패키지 업데이트 및 도커 설치 확인
sudo apt update

●
3.Docker 패키지 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

●
4. 테스트
1. hello-world 이미지 실행
sudo docker run hello-world

2. 실행중인 컨테이너 조회

참고
https://docs.docker.com/engine/install/ubuntu/#install-from-a-package
'인프라' 카테고리의 다른 글
| > [ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 2. 호스트 도커에 젠킨스 구축하기 (DIND, DOOD) (0) | 2024.03.08 |
|---|---|
| > [ CI/CD ] Docker & Jenkins & Spring boot CI/CD - 1.설계 (0) | 2024.03.08 |
| > [AWS] EC2 인스턴스 SSH 접속 (0) | 2024.03.08 |
| > [AWS] AWS 프리티어 EC2 인스턴스 생성 방법 (0) | 2024.03.05 |
| > [Docker] Docker 구조와 요소들에 대하여 (0) | 2023.11.27 |