docker plugin install 명령어를 사용하여 플러그인 설치 및 관리 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker plugin install 명령을 사용하여 Docker 플러그인을 설치하고 관리하는 방법을 배우게 됩니다. 기본 설정을 사용하여 플러그인을 설치하는 경우, 특정 매개변수로 플러그인을 설치하고 구성하는 경우, 그리고 즉시 활성화하지 않고 플러그인을 설치하는 경우 등 다양한 설치 시나리오를 탐구할 것입니다.

실습 예제를 통해 스토리지 및 기타 기능에 대한 외부 서비스를 통합하여 Docker 의 기능을 확장하는 실질적인 경험을 얻게 될 것입니다. 마지막으로, 플러그인의 성공적인 설치를 확인하는 방법을 배우게 됩니다.

기본 설정으로 플러그인 설치

이 단계에서는 기본 설정을 사용하여 Docker 플러그인을 설치하는 방법을 배우게 됩니다. Docker 플러그인은 Docker 의 기능을 확장하여 스토리지, 네트워킹 등과 같은 외부 시스템과 통합할 수 있도록 합니다.

플러그인을 설치하려면 docker plugin install 명령을 사용하고 그 뒤에 플러그인 이름을 입력합니다. Docker 는 기본적으로 Docker Hub 에서 플러그인을 가져옵니다.

Docker 볼륨에 S3 기반 스토리지를 제공하는 rexray/s3fs 플러그인을 설치해 보겠습니다.

docker plugin install rexray/s3fs

이 명령을 실행하면 Docker 는 플러그인을 다운로드하고 필요한 권한을 부여할지 확인하는 메시지를 표시합니다. y를 입력하고 Enter 키를 눌러 진행합니다.

Plugin "rexray/s3fs" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "rexray/s3fs" these permissions? [y/N] y

확인 후 Docker 는 플러그인을 설치하고 활성화합니다. 플러그인이 설치되고 활성화되었음을 나타내는 출력을 볼 수 있습니다.

rexray/s3fs:latest

이 출력은 rexray/s3fs 플러그인이 성공적으로 설치되어 활성화되었으며, S3 기반 볼륨을 생성하는 데 사용할 준비가 되었음을 확인합니다.

플러그인 설치 및 구성 매개변수 설정

이 단계에서는 Docker 플러그인을 설치하고 설치 중에 특정 매개변수로 구성하는 방법을 배우게 됩니다. 일부 플러그인은 올바르게 작동하기 위해 API 키, 엔드포인트 또는 기타 서비스별 세부 정보와 같은 구성 설정이 필요합니다.

plugin_name parameter_name=parameter_value 형식을 사용하여 docker plugin install 명령에 구성 매개변수를 전달할 수 있습니다.

Docker 볼륨에 SSHFS 를 사용할 수 있게 해주는 vieux/sshfs 플러그인을 설치해 보겠습니다. 이 플러그인은 SSH 사용자 및 호스트를 지정해야 합니다.

docker plugin install vieux/sshfs SSH_USER=labex SSH_HOST=localhost

이전 단계와 마찬가지로 Docker 는 플러그인을 다운로드하고 권한을 요청합니다. y를 입력하고 Enter 키를 눌러 권한을 부여합니다.

Plugin "vieux/sshfs" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "vieux/sshfs" these permissions? [y/N] y

확인 후 플러그인은 지정된 구성 매개변수로 설치되고 활성화됩니다.

vieux/sshfs:latest

이 출력은 vieux/sshfs 플러그인이 SSH_USERlabex로, SSH_HOSTlocalhost로 설정하여 설치되고 활성화되었음을 확인합니다. 이러한 매개변수는 볼륨을 생성할 때 플러그인에서 사용됩니다.

플러그인 비활성화 상태로 설치

이 단계에서는 Docker 플러그인을 즉시 활성화하지 않고 설치하는 방법을 배우게 됩니다. 플러그인을 설치하고 싶지만 사용할 준비가 될 때까지 활성화하지 않으려는 경우, 또는 활성화하기 전에 추가 구성 단계를 수행해야 하는 경우에 유용할 수 있습니다.

플러그인을 활성화하지 않고 설치하려면 docker plugin install 명령과 함께 --disable 플래그를 사용합니다.

CNI 네트워크 기능을 제공하는 containernetworking/cni 플러그인을 설치하되, 지금은 비활성화 상태로 유지해 보겠습니다.

docker plugin install --disable containernetworking/cni

Docker 는 플러그인을 다운로드하고 권한을 요청합니다. y를 입력하고 Enter 키를 눌러 권한을 부여합니다.

Plugin "containernetworking/cni" is requesting the following permissions:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-vulnerable-api: true
 - allow-host-access: true
 - allow-device: [/dev/fuse]
 - allow-cap: [sys_admin]
Do you grant the plugin "containernetworking/cni" these permissions? [y/N] y

확인 후 플러그인은 설치되지만 비활성화된 상태로 유지됩니다.

containernetworking/cni:latest

이 출력은 containernetworking/cni 플러그인이 성공적으로 설치되었음을 확인합니다. 다음 단계에서 해당 상태를 확인합니다.

설치된 플러그인 확인

이 단계에서는 설치된 Docker 플러그인의 상태를 확인하는 방법을 배우게 됩니다. 설치된 플러그인, 버전 및 활성화 또는 비활성화 여부를 확인할 수 있습니다.

설치된 모든 플러그인을 나열하려면 docker plugin ls 명령을 사용합니다.

docker plugin ls

이 명령은 ID, 이름, 설명, 활성화 상태 및 버전을 포함하여 각 설치된 플러그인에 대한 정보가 있는 테이블을 표시합니다.

이전 단계에서 설치한 세 개의 플러그인, 즉 rexray/s3fs, vieux/sshfscontainernetworking/cni를 볼 수 있습니다.

ID                  NAME                       DESCRIPTION                                            ENABLED             VERSION
a1b2c3d4e5f6        rexray/s3fs:latest         REX-Ray S3FS Plugin                                    true                latest
g7h8i9j0k1l2        vieux/sshfs:latest         The `sshfs` plugin for Docker.                         true                latest
m3n4o5p6q7r8        containernetworking/cni:latest CNI network plugin for Docker                        false               latest

rexray/s3fsvieux/sshfsENABLED (true) 로 나열되고, containernetworking/cni--disable 플래그로 설치했으므로 ENABLED (false) 로 나열됩니다.

docker plugin inspect 명령을 사용하고 플러그인 이름 또는 ID 를 입력하여 특정 플러그인을 자세히 검사할 수도 있습니다.

containernetworking/cni 플러그인을 검사해 보겠습니다.

docker plugin inspect containernetworking/cni

이 명령은 플러그인에 대한 모든 구성 및 상태 정보를 포함하는 자세한 JSON 객체를 출력합니다. 이 출력을 검사하여 플러그인의 설정 및 상태를 확인할 수 있습니다. 출력을 확인하여 비활성화되었는지 확인하려면 출력에서 "Enabled": false 줄을 찾으십시오.

[
  {
    "Id": "m3n4o5p6q7r8",
    "Name": "containernetworking/cni:latest",
    "Enabled": false,
    "Settings": {
      "Args": [],
      "Env": [],
      "Devices": [],
      "Mounts": []
    },
    "PluginReference": "docker.io/containernetworking/cni:latest",
    "Config": {
      "DockerVersion": "20.10.21",
      "Description": "CNI network plugin for Docker",
      "Documentation": "https://github.com/containernetworking/cni",
      "Interface": {
        "Types": ["docker.networkdriver/1.0"],
        "Socket": "cni.sock"
      },
      "Entrypoint": ["/docker-cni-plugin"],
      "PropagatedMount": "/opt/cni",
      "WorkDir": "",
      "User": {},
      "Args": {
        "Name": "",
        "Description": ""
      },
      "Linux": {
        "Capabilities": ["CAP_SYS_ADMIN"],
        "AllowAllDevices": false,
        "Devices": [
          {
            "Name": "fuse",
            "Path": "/dev/fuse"
          }
        ]
      },
      "Rootfs": {
        "Type": "tar",
        "DiffIds": ["sha256:..."]
      }
    }
  }
]

이 단계는 Docker 플러그인 설치 및 확인 프로세스를 완료합니다. 기본 설정, 특정 구성 매개변수를 사용하여 플러그인을 설치하는 방법과 즉시 활성화하지 않고 설치하는 방법을 배웠습니다. 또한 설치된 플러그인을 나열하고 검사하여 상태를 확인하는 방법도 알게 되었습니다.

요약

이 랩에서는 docker plugin install 명령을 사용하여 Docker 플러그인을 설치하고 관리하는 방법을 배웠습니다. 플러그인 이름을 지정하고 요청된 권한을 확인하는 것과 같이 기본 설정으로 플러그인을 설치하는 연습을 했습니다.

또한 설치 프로세스 중에 특정 구성 매개변수를 설정하면서 플러그인을 설치하는 방법을 탐구하여 처음부터 플러그인 동작을 사용자 정의하는 방법을 보여주었습니다. 마지막으로 플러그인의 성공적인 설치를 확인하는 방법을 배웠습니다.