소개
이 랩에서는 Docker 플러그인 관리, 특히 업그레이드 프로세스에 대해 배우게 됩니다. 먼저 Docker 플러그인을 설치하고 사용하여 기본 기능과 Docker 와의 통합 방식을 이해하는 것으로 시작합니다.
초기 설정을 완료한 후에는 플러그인 업그레이드를 준비하는 데 필요한 단계, 즉 비활성화하는 방법을 배우게 됩니다. 마지막으로, docker plugin upgrade 명령을 사용하여 업그레이드를 수행한 다음, 업그레이드된 플러그인을 다시 활성화하고 검증하여 제대로 작동하는지 확인합니다. 이 랩은 Docker 플러그인의 라이프사이클 관리에 대한 실습 경험을 제공합니다.
Docker 플러그인 설치 및 사용
이 단계에서는 Docker 플러그인을 설치하고 사용하는 방법을 배우게 됩니다. Docker 플러그인은 Docker 의 기능을 확장합니다. 볼륨 관리, 네트워크 드라이버 등과 같은 기능을 제공할 수 있습니다. Amazon S3 에 Docker 볼륨을 저장할 수 있게 해주는 rexray/s3fs라는 간단한 볼륨 플러그인을 설치해 보겠습니다. 전체 S3 백엔드를 설정하지는 않지만, 플러그인을 설치하는 것은 프로세스를 보여줍니다.
먼저, 플러그인을 설치해 보겠습니다. docker plugin install 명령을 사용하여 Docker 플러그인을 설치할 수 있습니다.
sudo docker plugin install rexray/s3fs --grant-all-permissions
이 명령은 rexray/s3fs 플러그인을 설치하고 필요한 모든 권한을 부여합니다. --grant-all-permissions 플래그는 이 랩 환경의 단순성을 위해 사용됩니다. 프로덕션 환경에서는 필요한 권한만 신중하게 검토하고 부여해야 합니다.
설치 및 권한을 확인하라는 메시지가 표시됩니다. y를 입력하고 Enter 키를 누르세요.
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
확인 후 Docker 는 플러그인을 다운로드하여 설치합니다. 네트워크 연결에 따라 잠시 시간이 걸릴 수 있습니다.
설치가 완료되면 docker plugin ls 명령을 사용하여 플러그인이 설치되고 활성화되었는지 확인할 수 있습니다.
sudo docker plugin ls
ENABLED 상태가 true로 설정된 rexray/s3fs가 표시되어야 합니다.
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
이제 플러그인이 설치되고 활성화되었으므로 이를 사용하여 볼륨을 생성할 수 있습니다. S3 자격 증명을 구성하지 않으면 S3 기능을 완전히 활용할 수 없지만, 플러그인 드라이버를 사용하여 볼륨을 생성할 수 있습니다.
sudo docker volume create --driver rexray/s3fs my-s3-volume
이 명령은 rexray/s3fs 드라이버를 사용하여 my-s3-volume이라는 볼륨을 생성하려고 시도합니다. S3 를 구성하지 않았으므로 이 명령은 S3 연결과 관련된 경고 또는 오류를 표시할 수 있지만, 볼륨 객체 자체는 Docker 에 의해 생성됩니다.
볼륨을 나열하여 새로 생성된 볼륨을 볼 수 있습니다.
sudo docker volume ls
DRIVER가 rexray/s3fs로 설정된 my-s3-volume이 표시되어야 합니다.
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
마지막으로, 볼륨을 검사하여 자세한 정보를 확인할 수 있습니다.
sudo docker volume inspect my-s3-volume
이 명령은 드라이버를 포함하여 my-s3-volume에 대한 정보를 담은 JSON 객체를 출력합니다.
업그레이드 전 플러그인 비활성화
이 단계에서는 Docker 플러그인을 비활성화하는 방법을 배우게 됩니다. Docker 플러그인을 업그레이드하기 전에 먼저 비활성화하는 것이 좋습니다. 이렇게 하면 업그레이드 프로세스 중에 플러그인이 컨테이너나 서비스에서 활발하게 사용되지 않아 잠재적인 문제를 방지할 수 있습니다.
docker plugin disable 명령을 사용하여 Docker 플러그인을 비활성화할 수 있습니다.
sudo docker plugin disable rexray/s3fs
이 명령은 rexray/s3fs 플러그인을 비활성화합니다. 플러그인이 현재 실행 중인 컨테이너에서 사용 중인 경우 Docker 는 비활성화를 방지하고 오류 메시지를 제공합니다. 이 경우 플러그인이 실행 중인 컨테이너에서 활발하게 사용되지 않으므로 성공적으로 비활성화되어야 합니다.
플러그인을 비활성화한 후 docker plugin ls 명령을 사용하여 상태를 확인할 수 있습니다.
sudo docker plugin ls
이제 rexray/s3fs가 ENABLED 상태가 false로 설정되어 표시되어야 합니다.
ID NAME DESCRIPTION ENABLED
xxxxxxxxxxxx rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
플러그인을 비활성화하면 비활성화되지만 시스템에 여전히 설치되어 있습니다. 이 상태는 플러그인의 업그레이드 또는 제거를 진행하기 전에 필요합니다.
Docker 플러그인 업그레이드
이 단계에서는 Docker 플러그인을 업그레이드하는 방법을 배우게 됩니다. 플러그드를 업그레이드하려면 플러그인의 최신 버전을 설치해야 합니다. 이전 단계에서 이미 플러그인을 비활성화했으므로 업그레이드를 진행할 수 있습니다.
Docker 플러그드를 업그레이드하려면 docker plugin install 명령을 다시 사용하고, 플러그인 이름과 특정 버전을 원하는 경우 새 태그를 지정합니다. 태그를 지정하지 않으면 Docker 가 최신 버전을 가져옵니다. 동일한 플러그인 이름을 사용하고 Docker 가 업그레이드 프로세스를 처리합니다.
sudo docker plugin install rexray/s3fs --grant-all-permissions
이 명령은 rexray/s3fs 플러그인을 다시 설치하려고 시도합니다. 이미 버전이 설치되어 있으므로 Docker 는 이를 업그레이드 시도로 인식합니다. 초기 설치와 유사하게 업그레이드 및 권한을 확인하라는 메시지가 표시됩니다.
Plugin "rexray/s3fs" is requesting the following permissions:
- network: host
- mount: /dev/fuse
- allow-sys-admin
- allow-cap-sys-admin
- allow-device /dev/fuse
- allow-cfg-unix-groups
- allow-runtime-privilege
- allow-force-remove
Do you grant the plugin these permissions? [y/N] y
y를 입력하고 Enter 키를 눌러 업그레이드를 진행합니다. Docker 는 플러그인의 새 버전을 다운로드하여 기존 버전을 대체합니다.
업그레이드가 완료된 후 플러그인은 비활성화된 상태로 유지됩니다. docker plugin ls 명령을 사용하여 이를 확인할 수 있습니다.
sudo docker plugin ls
ENABLED 상태가 false로 설정된 rexray/s3fs가 여전히 표시되어야 합니다. ID가 변경되었을 수 있으며, 이는 새 버전이 설치되었음을 나타냅니다.
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin false
플러그드를 업그레이드하면 플러그인의 실행 파일과 구성 파일이 새 버전으로 대체됩니다. 사용 가능하도록 업그레이드 후 플러그인을 다시 활성화하는 것이 중요합니다.
업그레이드된 플러그인 재활성화 및 검증
이 단계에서는 업그레이드된 Docker 플러그인을 다시 활성화하고 제대로 작동하는지 확인합니다. 플러그드를 업그레이드한 후에는 비활성화된 상태로 유지됩니다. Docker 에서 사용 가능하게 하려면 명시적으로 활성화해야 합니다.
docker plugin enable 명령을 사용하여 Docker 플러그인을 활성화할 수 있습니다.
sudo docker plugin enable rexray/s3fs
이 명령은 rexray/s3fs 플러그인을 활성화합니다. 플러그인이 성공적으로 시작되면 명령이 출력 없이 완료됩니다. 플러그인 시작에 문제가 있는 경우 오류 메시지가 표시될 수 있습니다.
플러그인을 활성화한 후 docker plugin ls 명령을 사용하여 상태를 확인할 수 있습니다.
sudo docker plugin ls
이제 rexray/s3fs가 ENABLED 상태가 다시 true로 설정되어 표시되어야 합니다.
ID NAME DESCRIPTION ENABLED
yyyyyyyyyyyy rexray/s3fs REX-Ray S3FS Docker Volume Plugin true
업그레이드된 플러그인이 작동하는지 추가로 확인하기 위해 플러그인 드라이버를 사용하여 다른 볼륨을 생성해 볼 수 있습니다.
sudo docker volume create --driver rexray/s3fs my-s3-volume-2
이 명령은 rexray/s3fs 드라이버를 사용하여 my-s3-volume-2라는 새 볼륨을 생성합니다. 플러그인이 제대로 작동하면 이 명령이 성공해야 합니다 (이전과 마찬가지로 구성되지 않은 경우 S3 연결과 관련된 경고가 표시될 수 있음).
새 볼륨을 보려면 볼륨을 다시 나열할 수 있습니다.
sudo docker volume ls
이제 DRIVER가 rexray/s3fs로 설정된 my-s3-volume과 my-s3-volume-2가 모두 표시되어야 합니다.
DRIVER VOLUME NAME
rexray/s3fs my-s3-volume
rexray/s3fs my-s3-volume-2
이는 업그레이드된 플러그인이 활성화되어 볼륨을 생성하는 데 사용할 수 있음을 확인합니다.
요약
이 Lab 에서는 Docker 플러그인을 설치하고 사용하는 방법을 배웠습니다. 구체적으로, 필요한 권한을 부여하여 docker plugin install 명령을 사용하여 rexray/s3fs 볼륨 플러그인을 설치했습니다. 그런 다음 docker plugin ls를 사용하여 플러그인의 성공적인 설치 및 활성화 상태를 확인했습니다.
설치 후, 업그레이드를 진행하기 전에 docker plugin disable을 사용하여 플러그인을 비활성화하는 중요한 단계를 배웠습니다. 그런 다음 새 버전을 지정하여 docker plugin upgrade 명령을 사용하여 플러그인 업그레이드를 수행했습니다. 마지막으로, docker plugin enable을 사용하여 업그레이드된 플러그인을 다시 활성화하고 상태 및 기능을 확인하여 성공적인 업그레이드 프로세스를 확인했습니다.



