본문 바로가기
Docker

[Docker] 도커 최신버전 설치및 삭제

by 정권이 내 2022. 12. 12.

img

 

쿠버네티스 환경에서 도커 이미지로 실행중인 컨테이너의 로그를 json 형식으로 출력해야되서 도커 설정을 변경했는데 도커 서비스 재시작이 제대로 되지않는 일이 있었습니다.

구글링을 이리저리 하다가 찾아보니 도커 버전문제일 가능성이 있다는 글을 발견해서 도커 공식홈페이지 매뉴얼에 따라 진행해보니 정상적으로 json 타입의 로그출력 설정이 적용되었습니다.

공식사이트에도 나와있지만 정리할겸 도커 최신버전 설치에 대해 설명해보겠습니다.

OS : CentOS7

 

1. Docker 구버전 삭제

먼저 OS 최초 설치시 자동으로 설치되있는 도커 구버전을 삭제해야 합니다.

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

 

2. Docker 설치

설치 방법은 몇가지 종류가 있는데 대부분은 Docker 레포지토리를 등록하여 설치합니다. 인터넷이 되지않는 환경에서는 RPM 패키지 파일을 이용하여 하기도하지만 가장많이 사용하는 방법인 레포지토리를 등록하여 설치하는 방법에대해 설명하겠습니다.

 

2.1 yum-utils 설치, repository 등록

yum-utils 는 저장소를 설정하고 패키지관리를 확장하는 도구입니다.

$ sudo yum install -y yum-utils

 

yum-utils 설치후 Docker 레포지토리를 등록합니다.

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

2.2 Docker 설치

Docker 최신버전 설치는 아래 명령어를 이용하면 됩니다.

$ yum install docker-ce docker-ce-cli containerd.io

 

만약 버전을 직접 설정해서 설치하고싶다면 yum list 명령으로 설치가능한 docker 버전을 확인합니다.

$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:20.10.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.7-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable

 

버전을 확인후 다음과 같은 형식으로 원하는 버전의 Docker를 설치할수 있습니다.

$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

 

2.3 docker 설치에 필요한 패키지 에러 발생시 대처

도커 설치시 아래와 같은 패키지 의존성 관련 에러가 발생할수 있습니다.

Error: Package: docker-ce-rootless-extras-20.10.21-3.el7.x86_64 (docker-ce-stable)
Requires: slirp4netns >= 0.4
Error: Package: 3:docker-ce-20.10.21-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2:2.74
Error: Package: docker-ce-rootless-extras-20.10.21-3.el7.x86_64 (docker-ce-stable)
Requires: fuse-overlayfs >= 0.7
Error: Package: containerd.io-1.6.12-3.1.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2:2.74

 

slirp4netns, container-selinux, fuse-overlayfs 3개의 패키지가 설치되있지 않거나 버전이 낮아서 발생하는 문제인데 아래의 명령어로 해당 패키지들을 설치하면 됩니다.

$ yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/slirp4netns-0.4.3-4.el7_8.x86_64.rpm

$ yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm

$ yum install -y http://mirror.centos.org/centos/7/extras/x86_64/Packages/container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm

 

2.4 도커 서비스 시작

설치가 완료되었다면 도커 서비스를 시작합니다.

$ sudo systemctl start docker

 

2.5 hello-world 이미지 테스트

도커의 정상작동을 확인하기 위해 hello-world 이미지 실행을 테스트합니다.

$ sudo docker run hello-world

 

3. 도커 삭제

설치한 도커를 완전 삭제하고싶다면 다음과 같이 수행합니다.

 

3.1 Docker 프로세스 중지, 패키지 제거

$ sudo systemctl stop docker
$ sudo yum remove docker-ce docker-ce-cli containerd.io

 

3.2 컨테이너, 이미지 디렉토리 삭제

$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
반응형

댓글