RHEL 8 리눅스에 도커(Docker)를 설치하는 방법을 정리한다. 윈도우에서는 도커 데스크톱을 GUI로 내려받아 설치하지만, 리눅스 서버에서는 CLI 환경에서 레포지토리를 등록하고 패키지를 직접 설치한다. RHEL 8 특유의 함정인 RHEL용 레포지토리 비호환, 그리고 podman·buildah 충돌까지 짚어가며 도커와 Docker Compose 설치를 끝까지 마무리한다.
목차
윈도우에서 도커 데스크톱으로 실습한 내용은 docker-compose로 워드프레스 구축 글에서 다뤘다. 윈도우는 GUI 환경에서 설치 파일을 받아 설치하지만, 리눅스에서는 아래처럼 CLI로 설치를 진행한다.
Docker 이전버전 제거
도커를 설치한 적이 있다면 기존 패키지를 먼저 제거한다(설치한 적이 없다면 이 단계는 건너뛰어도 무방하다).
$ sudo dnf remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
podman
runc
Docker 설치
레포지토리 패키지 추가
도커를 설치하려면 먼저 레포지토리에 도커 패키지를 추가해야 한다. 그런데 RHEL용 Docker 레포지토리는 정상 동작하지 않는다. 그래서 같은 레드햇 리눅스 계열인 CentOS용 레포지토리로 대체한다.
CentOS 레포지토리 주소: https://download.docker.com/linux/centos
$ yum install -y yum-utils
$ yum config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
podman·buildah 충돌 해결
레포지토리를 추가하고 바로 도커를 설치하려 하면 에러가 발생한다. RHEL 8에 기본 설치된 podman과 buildah가 도커와 충돌하기 때문이다. 두 패키지부터 먼저 제거한다.
$ yum remove -y podman
$ yum remove -y buildah
도커 패키지 설치 및 실행
충돌하는 패키지를 제거했으면 도커에 필요한 패키지를 설치한다.
$ yum install -y docker-ce docker-ce-cli containerd.io
설치가 끝나면 도커 서비스를 시작하고, 부팅 시 자동 실행되도록 등록한다.
$ systemctl start docker
$ systemctl status docker
$ systemctl enable docker
도커가 정상 설치되었다면 docker ps 명령으로 실행 중인 컨테이너 목록을 확인할 수 있다. 아직 설치만 한 상태이므로 목록은 비어 있는 것이 정상이다.
$ docker ps

Docker Compose 설치
리눅스에서는 도커와 Docker Compose를 따로 설치해야 한다. 다음 명령으로 Compose 플러그인을 내려받는다.
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
$ mkdir -p $DOCKER_CONFIG/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod 명령으로 실행 권한을 부여한다.
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
마지막으로 버전을 확인해 설치가 완료되었는지 검증한다.
$ docker compose version
Docker Compose version v2.3.4
정리
RHEL 8에서 도커를 설치할 때는 ① RHEL용 레포지토리 대신 CentOS 레포지토리를 등록하고, ② podman·buildah를 먼저 제거한 뒤 docker-ce를 설치하며, ③ Docker Compose는 별도 플러그인으로 설치한다는 세 가지가 핵심이다. 이제 도커가 준비되었으니 다음 단계로 Dockerfile로 이미지 빌드하고 레지스트리 생성하기로 직접 이미지를 만들어 볼 수 있다.



💬 댓글 0