이전 글에서는 Ubuntu 설치 후 Zsh, Oh My Zsh, VS Code, Node.js 등의 기본 개발 환경을 구성했다.
이번 글에서는 Docker를 설치하고, Docker Compose 및 Buildx 설정과 Docker 권한 설정까지 진행한다.
먼저 기존 Docker 관련 패키지가 설치되어 있는지 확인했다.
dpkg --get-selections | grep -E 'docker|containerd|runc'
충돌하는 게 없으면 Ubuntu 패키지 목록을 최신 상태로 업데이트한다.
sudo apt update
Docker 공식 저장소를 추가하기 전에 필요한 ca-certificates와 curl을 설치한다.
sudo apt install ca-certificates curl
Docker 패키지의 무결성을 확인하기 위해 Docker 공식 GPG 키를 설정한다.
먼저 키링 디렉터리를 생성한다.
sudo install -m 0755 -d /etc/apt/keyrings
Docker 공식 GPG 키를 다운로드한다.
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
Docker 패키지를 Ubuntu 기본 저장소가 아닌 Docker 공식 저장소에서 설치하기 위해 저장소를 추가한다.
echo -e "Types: deb\nURIs: https://download.docker.com/linux/ubuntu\nSuites: jammy\nComponents: stable\nArchitectures: amd64\nSigned-By: /etc/apt/keyrings/docker.asc" | sudo tee /etc/apt/sources.list.d/docker.sources
설정 파일이 제대로 생성되었는지 확인할 수 있다.
cat /etc/apt/sources.list.d/docker.sources
정상적으로 설정되면 다음과 같은 내용이 표시된다.
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: jammy
Components: stable
Architectures: amd64
Signed-By: /etc/apt/keyrings/docker.asc
현재 사용 중인 Ubuntu가 22.04 LTS(Jammy)이므로 Suites 는 jammy 로 설정했다.
Docker 저장소를 추가했으므로 다시 패키지 목록을 업데이트한다.
sudo apt update
이 과정에서 다음과 같은 메시지가 출력될 수 있다.
Skipping acquire to configured file 'stable/binary-i386/Packages' ...
doesn't support architecture 'i386'
이는 Docker 저장소가 i386 아키텍처를 지원하지 않는다는 안내이며, 현재 시스템의 amd64 설정에는 문제가 없었다.
현재 아키텍처도 확인할 수 있다.
dpkg --print-architecture
결과:
amd64
Docker의 핵심 패키지를 설치한다.
sudo apt install docker-ce docker-ce-cli containerd.io
Docker의 BuildKit 기반 빌드 기능을 사용하기 위해 Buildx 플러그인을 설치한다.
sudo apt install docker-buildx-plugin
Docker Compose 플러그인도 별도로 설치한다.
sudo apt install docker-compose-plugin
Docker 서비스가 정상적으로 실행되고 있는지 확인한다.
sudo systemctl status docker --no-pager
다음과 같이 표시되면 정상이다.
Active: active (running)
실제로 컨테이너를 실행하여 Docker가 정상적으로 작동하는지 확인한다.
sudo docker run hello-world
정상적으로 실행되면 다음과 같은 메시지가 출력된다.
Hello from Docker!
This message shows that your installation appears to be working correctly.
Docker를 사용할 때마다 sudo를 입력하는 것은 번거롭기 때문에 현재 사용자를 docker 그룹에 추가한다.
sudo usermod -aG docker $USER
변경된 그룹 권한을 현재 터미널에 적용한다.
newgrp docker
그리고 sudo 없이 Docker가 실행되는지 확인한다.
docker ps
정상적으로 실행되고 컨테이너가 없다면 다음처럼 헤더만 표시될 수 있다.
CONTAINER ID IMAGE COMMAND ...
이번 글에서는 Ubuntu 22.04 환경에서 Docker 개발 환경을 구축했다.
설치 및 설정한 것들
hello-world 컨테이너 실행 테스트sudo 생략