Docker Desktop 모듈 업데이트 명령 사용 방법: 단계별 가이드

DockerBeginner
지금 연습하기

소개

이 랩에서는 Linux 서버 환경과 관련된 개념에 중점을 두고 Docker 모듈 업데이트 과정을 살펴봅니다. Docker Desktop 은 흔히 사용되는 도구이지만, 서버에서 Docker 구성 요소를 관리하는 방법을 이해하는 것이 필수적입니다. 보안, 성능 및 새로운 기능을 위해 Docker 모듈을 최신 상태로 유지하는 것의 중요성을 배우게 됩니다.

일련의 단계를 통해 Docker 모듈 업데이트의 목적을 이해하고, 모듈 업데이트 명령의 실행을 시뮬레이션하며, 이 프로세스의 출력을 관찰합니다. 이를 통해 서버에서 건강하고 최신 상태의 Docker 환경을 유지하는 데 대한 실질적인 통찰력을 얻을 수 있습니다.

Docker Desktop 모듈 업데이트의 목적 이해

이 단계에서는 Docker Desktop 모듈을 업데이트하는 목적을 이해합니다. Docker Desktop 은 로컬 머신에서 Docker 를 관리하기 위한 편리한 애플리케이션이지만, 핵심 Docker 엔진과 해당 구성 요소는 LabEx VM 환경과 같은 Linux 서버에서도 사용할 수 있습니다. 이러한 구성 요소를 최신 상태로 유지하는 것은 보안, 성능 및 최신 기능에 대한 액세스에 매우 중요합니다.

사용 중인 Linux 서버 환경과 같은 환경에서 Docker 구성 요소는 일반적으로 시스템의 패키지 관리자 (Ubuntu/Debian 의 apt 또는 CentOS/Fedora의 yum/dnf와 같은) 를 통해 관리됩니다. 그러나 Docker 는 특히 패키지 관리자를 통해 전체 Docker 설치를 즉시 업데이트하고 싶지 않은 시나리오에서 특정 모듈 또는 구성 요소를 직접 업데이트하는 방법도 제공합니다.

Docker 모듈을 업데이트하면 최신 버그 수정, 보안 패치 및 성능 개선 사항을 확보할 수 있습니다. 또한 최신 버전의 Docker 에 도입된 새로운 기능을 활용할 수 있습니다. 예를 들어, 모듈 업데이트에는 컨테이너 런타임, 네트워킹 드라이버 또는 스토리지 드라이버에 대한 개선 사항이 포함될 수 있습니다.

서버 환경에서 특정 Docker 구성 요소를 업데이트하는 방법을 이해하는 것은 전체 시스템 업데이트 없이 문제 해결 또는 대상 수정 사항을 적용하는 데 유용할 수 있습니다.

이 서버 환경에서는 Docker Desktop 을 사용하지 않지만, Docker 구성 요소를 업데이트하는 개념은 유사합니다. Linux 서버 환경에서 업데이트가 일반적으로 처리되는 방식을 중점적으로 살펴보고 업데이트 프로세스를 시뮬레이션할 다음 단계를 준비합니다.

LabEx VM 에 설치된 Docker 의 현재 버전을 확인하려면 다음 명령을 사용할 수 있습니다.

docker version

이 명령은 Engine, containerd 및 runc 구성 요소를 포함하여 Docker 클라이언트 및 서버 버전에 대한 자세한 정보를 출력합니다. 이를 통해 현재 실행 중인 핵심 Docker 모듈의 버전을 이해할 수 있습니다.

Client: Docker Engine - Community
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        baeda1f
 Built:             Tue Oct 25 17:17:51 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       3056e8c
  Built:            Tue Oct 25 17:15:18 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.8
  GitCommit:        9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.18.0
  GitCommit:        de40ad0

출력은 Docker Engine, containerd 및 runc 의 버전을 보여줍니다. 이는 업데이트될 수 있는 주요 구성 요소입니다.

Docker Desktop 모듈 업데이트 명령 실행

이 단계에서는 Docker 모듈을 업데이트하는 명령 실행을 시뮬레이션합니다. 실제 Linux 서버 환경에서는 Docker 구성 요소 업데이트가 일반적으로 시스템의 패키지 관리자를 통해 수행됩니다. 예를 들어, Debian/Ubuntu 시스템에서는 sudo apt update를 사용한 다음 sudo apt upgrade docker-ce docker-ce-cli containerd.io를 사용합니다.

그러나 개요에 언급된 "모듈 업데이트"의 개념에 맞춰, 다른 컨텍스트 (Docker Desktop 의 내부 메커니즘과 같은) 에서 사용될 수 있거나 특정 구성 요소를 업데이트하기 위한 가상 명령을 나타내는 명령을 사용하여 이 프로세스를 시뮬레이션합니다. Docker Desktop 이 처리하는 방식과 동일한 방식으로 Linux 에서 Docker Engine 의 임의의 "모듈"을 업데이트하는 단일 범용 명령이 없으므로, Docker 구성 요소와 상호 작용하는 것을 보여주는 명령을 사용합니다.

docker info 명령을 사용합니다. 이 명령은 업데이트를 수행하지 않지만 Docker 데몬과 상호 작용하여 구성 및 상태에 대한 정보를 검색합니다. 이는 시스템을 확인하기 위해 업데이트 전후에 수행할 기본 상호 작용입니다. 이 명령을 사용하려면 Docker 데몬이 실행 중이고 응답해야 하며, 이는 핵심 Docker 구성 요소와의 성공적인 상호 작용을 시뮬레이션합니다.

터미널에서 다음 명령을 실행합니다.

docker info

이 명령은 스토리지 드라이버, 플러그인, 보안 옵션 등을 포함하여 Docker 설치에 대한 시스템 전체 정보를 표시합니다. 이 출력은 Docker 데몬이 실행 중이고 액세스할 수 있음을 확인하며, 이는 모든 업데이트 작업의 필수 조건입니다.

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.21
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9cd335e5e6e85f7ce7f82a72cb52dc052d52c423
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.15.0-56-generic
 Operating System: Ubuntu 22.04.1 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.84GiB
 Name: labex-vm
 ID: 3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c3056e8c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

출력은 Docker 환경에 대한 포괄적인 개요를 제공합니다. 이는 업데이트 전후에 Docker 설치 상태를 확인하기 위해 검토할 정보의 종류입니다.

업데이트 과정의 출력 결과 관찰

이 단계에서는 업데이트 프로세스를 시뮬레이션하는 명령의 출력을 관찰합니다. 논의했듯이, Linux 서버에서 실제 Docker 구성 요소 업데이트는 일반적으로 시스템의 패키지 관리자를 사용하는 것을 포함하며, 이는 다운로드, 설치 및 구성 프로세스에 대한 자세한 출력을 제공합니다.

이 환경에서 "모듈 업데이트"를 시뮬레이션하고 있으므로, 소프트웨어 설치 또는 업데이트 중에 볼 수 있는 것과 유사한 출력을 생성하는 명령을 사용합니다. sudo apt update 명령을 사용합니다. 이 명령은 업그레이드 및 새 패키지 설치를 위한 패키지 목록을 업데이트합니다. Docker 자체를 업데이트하지는 않지만, 생성되는 출력은 Debian/Ubuntu 시스템에서 소프트웨어 업데이트 프로세스 중에 관찰할 수 있는 진행 상황 및 상태 메시지를 나타냅니다.

터미널에서 다음 명령을 실행합니다.

sudo apt update

이 명령은 Ubuntu 저장소에 연결하여 사용 가능한 패키지에 대한 최신 정보를 다운로드합니다. 출력은 다양한 소스에서 패키지 목록을 다운로드하는 진행 상황을 보여줍니다.

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [108 kB]
Get:4 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Fetched 337 kB in 1s (301 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

출력은 패키지 목록이 가져와지고 처리되고 있음을 보여줍니다. 설치된 패키지 (Docker 구성 요소가 apt를 통해 설치된 경우 포함) 에 대한 업데이트가 있는 경우, sudo apt update 후에 일반적으로 실행하는 sudo apt upgrade의 출력은 어떤 패키지가 업그레이드되고 있는지와 설치 진행 상황을 보여줍니다.

이러한 유형의 출력을 관찰하는 것은 모든 업데이트 프로세스 중에 중요합니다. 이를 통해 진행 상황을 모니터링하고, 오류 또는 경고를 식별하고, 업데이트가 성공적으로 완료되었는지 확인할 수 있습니다. 패키지 관리자를 사용하는 실제 Docker 업데이트 시나리오에서는 유사한 진행 표시기와 확인 메시지를 볼 수 있습니다.

요약

이 랩에서는 보안, 성능 및 새로운 기능을 위해 Docker 구성 요소를 업데이트하는 것의 중요성에 대해 배웠습니다. 특히 업데이트가 일반적으로 패키지 관리자를 통해 관리되는 Linux 서버 환경에서 더욱 중요합니다. Docker Desktop 이 GUI 도구이지만, 기본 Docker 엔진 구성 요소도 서버에 존재하며 업데이트가 필요하다는 것을 이해했습니다. 또한 docker version 명령을 사용하여 현재 Docker 버전을 확인하여 Engine, containerd 및 runc 와 같은 핵심 구성 요소의 버전을 이해하는 방법을 배웠습니다.

그런 다음 Docker 모듈을 업데이트하기 위해 명령을 실행 (이 컨텍스트에서 시뮬레이션) 하여 프로세스를 이해하고 업데이트의 성공을 확인하기 위해 출력을 관찰했습니다. 이 실습 경험은 전체 시스템 업데이트 없이 특정 Docker 구성 요소에 대한 대상 업데이트의 개념을 강화했으며, 이는 문제 해결 또는 빠른 수정을 적용하는 데 유용할 수 있습니다.