Docker 플러그인 비활성화를 위한 'docker plugin disable' 명령어 사용 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker plugin disable 명령어를 중심으로 Docker 플러그인을 관리하는 방법을 배우게 됩니다. 먼저 현재 설치된 플러그인을 나열하여 상태를 파악하는 것으로 시작합니다. 그 다음, 플러그인을 비활성화하는 실습을 진행하고, 이 작업의 효과를 관찰합니다.

이 랩에서는 또한 플러그인이 성공적으로 비활성화되었는지 확인하는 방법도 다룹니다. 선택적으로, 활성 참조가 있는 경우와 같이 플러그인 비활성화가 제한될 수 있는 시나리오와 활성 플러그인을 강제로 비활성화하는 방법을 살펴봅니다.

설치된 플러그인 목록 확인

이 단계에서는 현재 시스템에 설치된 Docker 플러그인을 나열하는 방법을 배우게 됩니다. Docker 플러그인은 볼륨 관리, 네트워킹 및 로깅과 같은 기능을 제공하여 Docker 의 기능을 확장합니다.

설치된 플러그인을 나열하려면 docker plugin ls 명령어를 사용할 수 있습니다. 이 명령어는 설치된 모든 플러그인의 목록과 함께 상태 (활성화 또는 비활성화) 및 기타 관련 정보를 표시합니다.

설치된 플러그인을 확인하기 위해 명령어를 실행해 보겠습니다.

docker plugin ls

다음과 유사한 출력을 볼 수 있습니다. 하지만 나열된 특정 플러그인은 환경에 따라 다를 수 있습니다.

ID    NAME    DESCRIPTION    ENABLED

기본 LabEx 환경에서는 기본적으로 플러그인이 설치되어 있지 않을 수 있습니다. 위의 출력은 현재 플러그인이 설치되어 있지 않음을 나타냅니다. 플러그인이 설치되어 있다면 여기에 나열됩니다.

출력 열은 다음과 같습니다.

  • ID: 플러그인의 고유 식별자.
  • NAME: 플러그인의 이름.
  • DESCRIPTION: 플러그인의 기능에 대한 간략한 설명.
  • ENABLED: 플러그인이 현재 활성화되어 있는지 (true) 또는 비활성화되어 있는지 (false) 를 나타냅니다.

어떤 플러그인이 설치되어 있고 상태가 어떤지 이해하는 것은 Docker 플러그인을 관리하는 첫 번째 단계입니다. 다음 단계에서는 이러한 플러그인을 비활성화하고 관리하는 방법을 배우게 됩니다.

플러그인 비활성화

이 단계에서는 설치된 Docker 플러그인을 비활성화하는 방법을 배우게 됩니다. 플러그인을 비활성화하면 실행이 중지되고 Docker 에서 해당 기능을 사용할 수 없게 됩니다.

플러그인을 비활성화하려면 docker plugin disable 명령어를 사용하고, 그 뒤에 비활성화하려는 플러그인의 이름 또는 ID 를 입력합니다.

이 환경에서는 기본적으로 플러그인이 설치되어 있지 않으므로, 먼저 간단한 플러그인을 설치하여 disable 명령어를 시연하겠습니다. 원격 SSH 파일 시스템을 Docker 볼륨으로 마운트할 수 있는 vieux/sshfs 플러그인을 설치합니다.

먼저, 플러그인을 설치해 보겠습니다. 이 명령어는 플러그인 이미지를 가져와 활성화합니다.

docker plugin install vieux/sshfs

플러그인의 기능을 확인하라는 메시지가 표시됩니다. y를 입력하고 Enter 키를 눌러 진행합니다.

Plugin "vieux/sshfs" is requesting the following privileges:
 - network: [host]
 - mount: [/dev/fuse]
 - allow-host-dnsserver: true
 - allow-other: true
 - capability: [CAP_SYS_ADMIN]
Do you grant the plugin these privileges? [y/n] y

설치가 완료되면 플러그인을 다시 나열하여 플러그인이 설치되고 활성화되었는지 확인할 수 있습니다.

docker plugin ls

이제 ENABLEDtrue로 설정된 vieux/sshfs가 표시되어야 합니다.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         true

이제 이름을 사용하여 vieux/sshfs 플러그인을 비활성화해 보겠습니다.

docker plugin disable vieux/sshfs

명령이 성공하면 아무런 출력이 표시되지 않습니다. 이는 플러그인이 비활성화되었음을 나타냅니다.

플러그인 기능을 더 이상 사용하지 않거나 문제를 해결하는 경우 플러그인을 비활성화하는 것이 유용합니다. 다음 단계에서는 플러그인이 실제로 비활성화되었는지 확인합니다.

플러그인 비활성화 상태 확인

이 단계에서는 이전 단계에서 비활성화한 vieux/sshfs 플러그인이 실제로 더 이상 활성화되지 않았는지 확인합니다.

설치된 플러그인의 상태를 확인하려면 docker plugin ls 명령어를 다시 사용할 수 있습니다. 이 명령어는 모든 플러그인의 현재 상태를 표시합니다.

명령어를 실행합니다.

docker plugin ls

vieux/sshfs 플러그인의 출력을 확인합니다. ENABLED 열에 이제 false가 표시되어야 합니다.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

ENABLED 열에 false가 표시되면 플러그인이 성공적으로 비활성화되었음을 확인합니다. 플러그인이 비활성화되면 Docker 는 해당 기능을 사용할 수 없습니다.

이 확인 단계는 이전 명령이 원하는 효과를 얻었는지 확인하는 데 중요합니다. 다음 선택적 단계에서는 플러그인 비활성화가 더 복잡할 수 있는 시나리오를 탐색합니다.

참조가 있는 플러그인 비활성화 시도 (선택 사항)

이 선택적 단계에서는 현재 사용 중이거나 해당 플러그인에 종속된 리소스가 있는 플러그인을 비활성화하려고 시도합니다. 이를 통해 Docker 가 이러한 상황을 어떻게 처리하는지 보여줍니다.

먼저, vieux/sshfs 플러그인을 다시 활성화하여 사용할 수 있도록 하겠습니다.

docker plugin enable vieux/sshfs

이제 vieux/sshfs 플러그인을 사용하는 Docker 볼륨을 생성해 보겠습니다. 이렇게 하면 플러그인에 대한 종속성이 생성됩니다.

docker volume create --driver vieux/sshfs -o sshcmd=user@host:/path/to/dir -o IdentityFile=~/.ssh/id_rsa sshfs_volume

참고: 이 명령은 유효한 SSH 호스트와 키가 구성되어 있지 않기 때문에 실패할 가능성이 높습니다. 이는 예상된 동작이며, 플러그인을 사용하려고 시도하는 볼륨을 생성하여 참조를 만드는 데 목적이 있습니다. 볼륨 생성에 실패했음을 나타내는 오류 메시지가 표시됩니다.

이제 볼륨 sshfs_volume이 존재하는 동안, 볼륨 생성이 실패했음에도 불구하고 vieux/sshfs 플러그인을 다시 비활성화해 보겠습니다.

docker plugin disable vieux/sshfs

다음과 유사한 오류 메시지가 표시되어야 합니다.

Error response from daemon: plugin vieux/sshfs is in use by volume sshfs_volume

이 오류는 Docker 가 볼륨과 같은 다른 Docker 리소스에서 현재 참조하는 플러그인을 비활성화하는 것을 방지하기 때문에 발생합니다. 이는 예기치 않은 동작이나 데이터 손실을 방지하기 위한 안전 메커니즘입니다.

이 시나리오에서 플러그인을 성공적으로 비활성화하려면 먼저 종속 리소스 (이 경우 볼륨) 를 제거해야 합니다. 볼륨을 제거해 보겠습니다.

docker volume rm sshfs_volume

이제 플러그인을 비활성화할 수 있습니다.

docker plugin disable vieux/sshfs

이번에는 오류 메시지 없이 명령이 성공해야 합니다.

이 단계는 Docker 가 종속성을 관리하고 활발하게 사용 중인 플러그인을 비활성화하는 것을 방지함을 보여줍니다.

강제 비활성화 시도 (선택 사항)

이 선택적 단계에서는 Docker 플러그인을 강제로 비활성화하는 방법을 배웁니다. 플러그인이 멈추거나 정상적으로 비활성화할 수 없는 경우에 필요할 수 있습니다. 그러나 플러그인이 중요한 리소스에서 활발하게 사용되고 있는 경우 예기치 않은 동작을 초래할 수 있으므로 강제 옵션을 사용할 때는 주의해야 합니다.

먼저, vieux/sshfs 플러그인이 활성화되어 있는지 확인해 보겠습니다.

docker plugin enable vieux/sshfs

이제 -f 또는 --force 플래그를 사용하여 플러그인을 강제로 비활성화해 보겠습니다.

docker plugin disable -f vieux/sshfs

강제 플래그를 사용하더라도 플러그인이 실행 중인 컨테이너 또는 기타 중요한 리소스에서 활발하게 사용되고 있는 경우, Docker 는 시스템 불안정성을 방지하기 위해 비활성화 작업을 여전히 방지할 수 있습니다. 그러나 실행 중인 컨테이너를 적극적으로 관리하지 않는 vieux/sshfs와 같은 간단한 플러그인의 경우, 강제 플래그는 이전 단계에서 볼륨 참조를 제거했음에도 불구하고 일반적으로 남아있는 참조가 있더라도 성공합니다.

강제 옵션은 주로 플러그인이 응답하지 않거나 표준 방법으로 비활성화할 수 없는 상황을 처리하도록 설계되었습니다. 현재 상태 또는 사소한 참조에 관계없이 플러그인 프로세스를 종료하고 비활성화하려고 시도합니다.

강제 비활성화를 시도한 후 플러그인의 상태를 확인할 수 있습니다.

docker plugin ls

vieux/sshfs 플러그인이 이제 ENABLEDfalse로 설정되어 나열되어야 합니다.

ID                  NAME                DESCRIPTION                         ENABLED
<plugin_id>         vieux/sshfs         Mount remote SSH filesystem         false

이것으로 플러그인 종속성 처리 및 강제 비활성화에 대한 선택적 단계가 마무리됩니다. Docker 플러그인의 상태를 나열, 비활성화 및 확인하는 방법과 Docker 가 참조가 있는 플러그인을 비활성화하려는 시도를 처리하는 방법을 배웠습니다.

요약

이 랩에서는 Docker 플러그인을 관리하는 방법을 배웠으며, 특히 비활성화에 중점을 두었습니다. 먼저 docker plugin ls를 사용하여 설치된 플러그인을 나열하여 상태를 이해하고 어떤 플러그인이 활성 상태인지 확인했습니다. 그런 다음 docker plugin disable 명령을 사용하여 플러그인을 비활성화하는 연습을 하여 플러그인의 기능을 중지하는 방법을 시연했습니다. 마지막으로 플러그인이 성공적으로 비활성화되었는지 확인했습니다.