본문 바로가기
Dev/ETC

[Docker] 도커 삭제 및 재설치

by nakanara 2020. 12. 23.
반응형

docker

도커를 삭제하거나, 도커의 버전 변경이나, 특정 버전을 설치로 삭제해야 하는 경우

도커 삭제하기

  • 실행 중인 Docker container 중지
  • docker service, container service 중지

도커 서비스 중지

$ sudo systemctl stop docker

$ sudo systemctl stop containerd

관련 패키지 삭제

# 패키지 검색 후 삭제
$ sudo yum list  installed | grep docker
containerd.io.x86_64                  1.4.3-3.1.el7                   @docker-ce-stable
docker-ce.x86_64                      3:18.09.3-3.el7                 @docker-ce-stable
docker-ce-cli.x86_64                  1:18.09.3-3.el7                 @docker-ce-stable

# 패키지 모두 삭제
$ sudo yum remove containerd.io.x86_64
$ sudo yum remove docker-ce.x86_64
$ sudo yum remove docker-ce-cli.x86_64

# 과거 docker, docker-engine 등 docker로 시작되는 패키지가 설치 되어 있는 경우 함께 삭제
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

도커 컨테이너 및 이미지 삭제

yum을 통하여 도커를 제거하는 경우 이미지, 컨테이너, 볼륨 및 네트워크는 보존.
docker은 docker-ce로 변경됨

  • 이미지, 컨테이너, 볼륨 등 파일 삭제
$ sudo rm -rf /var/lib/docker
  • 도커 컨테이너 중지 및 삭제
# 특정 도커 컨테이너 ID
$ sudo docker stop <container ID>

# 전체 실행 중인 도커 프로세스 
$ sudo docker stop $(docker ps -q)

# 도커 컨테이너 삭제
$ sudo docker rm <Container ID>

# 전체 도커 컨테이너 삭제
$ sudo docker rm $(docker ps -a -q)
  • 도커 이미지 삭제
$ sudo docker rmi <Image ID>

$ sudo docker rmi $(docker images -q)

도커 설치

필수 패키지 yum-utils 설치 및 저장소 추가

$ sudo yum install -y yum-utils

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

Docker 설치

  • 최신 버전 설치
$ sudo yum install docker-ce \
                docker-ce-cli \
                containerd.io

GPG 키를 수락하라는 메시지가 표시되면 지문이 일치하는지 확인하고 일치하는 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35 경우 수락합니다.

  • 특정 버전 설치
# 설치 가능 버전 확인
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.14-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.13-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.12-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.11-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.10-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                    @docker-ce-stable

설치할 패키지 뒤에 버전을 명시할 경우 해당 버전으로 설치

# 특정 버전 명시
$ sudo yum install docker-ce-18.09.3 \
                  docker-ce-cli-18.09.3 \
                  containerd.io

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

도커 시작

$ sudo systemctl start docker

# hello-world 이미지로 테스트 
# hello-world 컨테이너는 정상 동작시 메시지만 표시하고 종료된다.
$ sudo docker run hello-world
# hello-world 실행 결과 일부

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest

Hello from Docker!

root 외 사용자가 docker 컨테이너 실행 권한 부여

root 외 사용자가 컨테이너 실행이 필요할 경우 docker 그룹에 추가해야 한다.
해당 사용자는 재로그인 필요

$ sudo usermod -aG docker <your-user>

docker.io docker.ce 차이

  • docker.io 패키지는 Debian/Ubuntu 저장소에서 제공되는 docker 릴리스용 이름
  • docker.ce 는 docker.com에서 제공하는 직접 제공하는 인증 릴리스

두 버전은 유사하지만, 내부 구조가 매우 다름

  • docker.io는 데비안(또는 우분투) 방식으로 수행, 각 외부 종속성은 독립적으로 업데이트될 수 있다. 각 개별 패키지로 구성
  • docker-ce는 Golang 방식으로 수행. 모든 종속성은 빌드 전에 소스 트리로 가져오고 이후에는 전체가 하나의 단일 패키지로 형성, 따라서 항상 모든 종속성으로 docker를 업데이트해야 함

참고

반응형