소개
이 랩에서는 docker plugin rm 명령을 사용하여 Docker 플러그인을 제거하는 방법을 배우게 됩니다. 먼저, 작업할 샘플 플러그인을 설치하는 것으로 시작합니다. 그런 다음, 플러그인이 활성화된 상태에서 플러그인을 제거하려고 시도하여 기본 동작과 발생하는 오류를 이해합니다.
실패한 시도 후에는 제거의 필수 조건인 플러그인을 비활성화하는 방법을 배우게 됩니다. 마지막으로, 비활성화된 플러그인을 성공적으로 제거하고 강제 플래그 (force flag) 를 사용하여 제거하는 옵션도 살펴봅니다.
샘플 플러그인 설치
이 단계에서는 Docker 플러그인을 설치하는 방법을 배우게 됩니다. Docker 플러그인은 Docker 의 기능을 확장하여 스토리지, 네트워킹 및 로깅과 같은 외부 시스템과 통합할 수 있도록 합니다.
이 과정을 시연하기 위해 간단한 샘플 플러그인을 설치합니다. 플러그인을 설치하는 명령어는 docker plugin install입니다. 설치 과정에서 플러그인의 기능과 권한을 수락해야 합니다.
먼저, vieux/sshfs 플러그인을 설치해 보겠습니다. 이 플러그인을 사용하면 SSHFS 를 사용하여 볼륨을 마운트할 수 있습니다.
docker plugin install vieux/sshfs
플러그인의 기능을 수락하라는 메시지가 표시됩니다. y를 입력하고 Enter 키를 눌러 진행합니다.
Plugin "vieux/sshfs" is requesting the following capabilities:
- Network: host
- Mounts: [/dev/fuse]
- Args: [--sshkey-path]
Do you grant the plugin these permissions? [y/N] y
수락 후, 플러그인이 설치되고 활성화됩니다. 설치된 플러그인을 나열하여 설치를 확인할 수 있습니다.
docker plugin ls
ENABLED 상태가 true로 설정된 vieux/sshfs가 표시되어야 합니다.
활성화된 플러그인 제거 시도
이전 단계에서 vieux/sshfs 플러그인을 설치하고 활성화했습니다. 이 단계에서는 이 플러그인이 활성화된 상태에서 제거를 시도합니다. 이를 통해 활성화된 플러그인을 직접 제거할 수 없음을 보여줍니다.
Docker 플러그인을 제거하는 명령어는 docker plugin rm입니다. vieux/sshfs 플러그인을 제거해 보겠습니다.
docker plugin rm vieux/sshfs
플러그인이 활성화되어 제거할 수 없다는 오류 메시지가 표시됩니다. Docker 는 현재 사용 중이거나 활성 상태인 플러그인을 제거하는 것을 방지하므로 이는 예상되는 동작입니다.
출력은 다음과 유사합니다.
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
이는 플러그인을 제거하기 전에 비활성화해야 함을 확인합니다. 다음 단계에서는 플러그인을 비활성화하는 방법을 배우게 됩니다.
플러그인 비활성화
이전 단계에서 활성화된 Docker 플러그인을 제거할 수 없다는 것을 배웠습니다. 플러그인을 제거하려면 먼저 비활성화해야 합니다.
Docker 플러그인을 비활성화하는 명령어는 docker plugin disable입니다. 이제 첫 번째 단계에서 설치한 vieux/sshfs 플러그인을 비활성화합니다.
docker plugin disable vieux/sshfs
이 명령은 플러그인을 중지하고 비활성 상태로 만듭니다. 명령이 성공하면 많은 출력을 볼 수 없습니다.
플러그인이 비활성화되었는지 확인하려면 설치된 플러그인을 다시 나열할 수 있습니다.
docker plugin ls
이제 vieux/sshfs의 출력에서 ENABLED가 false로 표시되어야 합니다.
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts true
잠깐만요, 출력은 여전히 true로 표시되나요? 이는 docker plugin ls 명령이 캐시된 정보를 표시할 수 있기 때문입니다. 업데이트된 상태를 확인하기 위해 플러그인을 다시 나열해 보겠습니다.
docker plugin ls
이제 vieux/sshfs의 ENABLED 상태가 false로 표시되어야 합니다.
ID NAME DESCRIPTION ENABLED
f51132325c3b vieux/sshfs Create SSHFS mounts false
이제 플러그인이 비활성화되어 제거할 준비가 되었습니다.
비활성화된 플러그인 제거
이전 단계에서 vieux/sshfs 플러그인을 성공적으로 비활성화했습니다. 이제 플러그인이 비활성화되었으므로 docker plugin rm 명령을 사용하여 제거할 수 있습니다.
docker plugin rm vieux/sshfs
플러그인이 성공적으로 제거되면 출력에 플러그인 이름이 표시됩니다.
vieux/sshfs
플러그인이 제거되었는지 확인하려면 설치된 플러그인을 다시 나열합니다.
docker plugin ls
이번에는 vieux/sshfs 플러그인이 목록에 더 이상 나타나지 않아야 합니다.
이는 Docker 플러그인을 제거하는 표준 프로세스를 보여줍니다. 먼저 비활성화한 다음 제거합니다. 다음 단계에서는 플러그인을 강제로 제거하려고 하면 어떻게 되는지 살펴보겠습니다.
강제 제거 시도
이전 단계에서 플러그인을 제거하기 전에 비활성화해야 한다는 것을 배웠습니다. 활성화된 플러그인을 강제로 제거하려고 하면 어떻게 될까요?
docker plugin rm 명령에는 플러그인을 강제로 제거하려고 시도하는 데 사용할 수 있는 --force 또는 -f 플래그가 있습니다. 그러나 강제 플래그를 사용하더라도 Docker 는 활성화된 플러그인을 제거하지 않습니다.
먼저 vieux/sshfs 플러그인을 다시 설치하여 작업할 활성화된 플러그인을 갖도록 하겠습니다.
docker plugin install vieux/sshfs
기능을 수락하라는 메시지가 표시되면 y를 입력하고 Enter 키를 누르는 것을 잊지 마세요.
이제 플러그인이 다시 설치되고 활성화되었으므로 강제 플래그를 사용하여 제거해 보겠습니다.
docker plugin rm --force vieux/sshfs
강제 플래그 없이 제거하려고 했을 때와 유사한 오류 메시지가 표시되어 플러그인이 활성화되어 제거할 수 없음을 나타냅니다.
Error response from daemon: plugin vieux/sshfs is enabled. Disable it before removing
이는 강제 플래그가 제거 전에 플러그인을 비활성화해야 하는 요구 사항을 무시하지 않음을 확인합니다. 강제 플래그는 일반적으로 특정 검사를 우회하기 위해 컨테이너, 이미지 또는 볼륨을 제거하는 것과 같은 다른 Docker 컨텍스트에서 사용되지만 활성화된 플러그인 제거에는 적용되지 않습니다.
정리하려면 앞서 배운 단계를 따라 플러그인을 다시 비활성화하고 제거할 수 있습니다.
요약
이 랩에서는 docker plugin install을 사용하여 Docker 플러그인을 설치하는 방법을 배우고 docker plugin ls로 설치를 확인했습니다. 그런 다음 docker plugin rm을 사용하여 활성화된 플러그인을 제거하려고 시도했으며 Docker 가 활성 플러그인의 제거를 방지하고 먼저 비활성화해야 함을 발견했습니다.



