01 - Page Assets Layers
커스텀 소개 매인페이지
여러가지/Linux int iron

Ubuntu에 Docker 설치하기

서론

Ubuntu에 도커를 설치하기에 앞서 Ubuntu버전 확인이 필수이다. Ubuntu가 22버전 이후 /etc/apt/keyrings라는 폴더가 생기면서 GPG에 관하여 변경이 되었다.

그러므로 22.04버전 전후로 설치할 때 신경써줘야 할 부분이 다른점이 있기에 버전을 먼저 확인하고 설치 알아보는 것이 좋다.

내 PC는 20.04를 설치할까 하다 지원 기간이 1년 남았다는 이야기를 듣고 Ubuntu24.04LTS를 설치하였기에 24.04를 기준으로 설명할 것이다.

추가로 공식 홈페이지에서 .deb파일을 다운받아서

#/bin/bash
sudo apt-get update
sudo apt-get install ./docker-desktop-<버전>.deb

형태로 설치하는 것이 가장 쉽고 빠른 길이지만 다른 방식으로 접근해 보겠다.

 

apt repository 추가

Docker공식 홈페이지를 보면(https://docs.docker.com/engine/install/ubuntu/)

#/bin/bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
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

# 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

위와 같이 입력하여 공식 GPG 키를 저장하고 하면 된다고 한다.

GPG key입력을 위한 shell script를 만들었다.

 

료하고 shell script 실행 결과

무사히 진행되었다면 apt를 이용하여 Docker와 Docker-compose를 설치해보자

Docker와 Docker-compose를 설치하기 위해 필요한 것들은

docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin으로 도커 엔진 및 cli, 도커데몬, 플러그인 등

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

와 같이 설치하면 된다.

 

Docker group

설치를 완료하고 docker ps 또는 docker run hello-world를 입력해보면

도커 설치 후 첫 오류

이와 같은 오류를 발견 할 수 있을 것이다.

자세히 보면 알 수 있듯이 권한문제로 발생하는 오류다.

간단하게 sudo만 붙여서 사용하면 되기는 하지만 이는 올바른 방법이 아니다. 그럼 어떻게 해야 올바르게 사용 할 수 있을까?

이를 위해 알기 위해 우선 권한이 없다고 하는 파일의 정보를 확인해보자

docker 데몬 권한

소유자는 root 그룹은 docker이고 소유자와 그룹은 rw의 권한아 있고 기타 사용자는 사용 할 수 없는 것을 확인 해 볼 수 있다.

그러면

cat /etc/group

을 입력해 확인해보자

시스템 내 그룹 확인

맨 하단에 docker 그룹이 있는 것을 확인 할 수 있다. 마지막으로

groups $USER

를 입력해 보면 현재 사용자는 docker에 소속되어 있지 않으므로 기타 사용자로서 도커데몬을 실행시킬 권한이 없다.

즉 사용자를 docker그룹에 추가만 시켜주면 docker 데몬을 사용 할 수 있기 때문에 sudo를 사용하는 불안정한 방법이 아닌 docker그룹에 소속시켜 권한을 얻는 방법이 올바른 방법이다.

아래 docker 그룹에 소속시키는 방법이다.

sudo usermod -aG docker $USER

그룹에 소속시킨 후 Docker 데몬을 다시 실행시키면 sudo없이 사용이 가능하다.(로그아웃이나 기타 방법으로 재실행 시켜도 된다)