[Docker] Docker Completion 설정
Docker 20.10부터 docker-ce 저장소가 deprecated되어, docker/cli 저장소의 completion 파일로 Bash 자동 완성을 설정하는 방법입니다.
요약
- Docker 20.10부터 docker-ce 저장소가 deprecated되었으므로 docker completion 파일은
docker/cli저장소에서 받아야 합니다. docker/cli의contrib/completion/bash/docker파일을/etc/bash_completion.d/docker로 내려받으면docker <tab>자동 완성이 동작합니다.
Docker Completion 설정 (자동 완성)
최근 Podman 만 사용하다가 오랜만에 Docker 를 설치하면서 변경된 부분이 있는데 따로 공식 문서나 자료가 없어서 관련하여 작성해본다.
변경된 이유
Docker CE (https://github.com/docker/docker-ce)
⚠️ This repository is now deprecated and will be archived (Docker CE itself is NOT deprecated) ⚠️
Starting with the Docker 20.10 release, packages for the Docker Engine and Docker CLI are built directly from their respective source repositories instead of from this repository.
기존에 사용중이던 docker-ce repository 에서 위와 같이 Docker 20.10 version 이 되면서 repository 가 변경 되었다.
그래서 아래와 같이 docker/cli repository 에서 해당 completion file 을 이용하여 설정해야된다.
설정
아래와 같은 방법으로 최신 docker completion 을 추가 할 수 있다.
(Bash 기준으로 작성)
$ sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker
$ sudo docker <tab>
attach commit context diff export image info load logs node port push rm save service stats system trust version
build config cp events help images inspect login manifest pause ps rename rmi search stack stop tag unpause volume
builder container create exec history import kill logout network plugin pull restart run secret start swarm top update wait
참고 자료
- https://github.com/docker/cli
- 다른 Shell completion file
- https://github.com/docker/cli/tree/master/contrib/completion
- Bash, Zsh, fish, powershell 지원
자주 묻는 질문
최신 Docker에서 Bash 자동 완성을 설정하려면 어떻게 하나요?
sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker로 completion 파일을 내려받습니다. 이후 docker <tab>으로 하위 명령이 자동 완성됩니다.
예전처럼 docker-ce 저장소에서 completion 파일을 받으면 안 되나요?
Docker 20.10부터 Docker Engine과 CLI 패키지가 각 소스 저장소에서 직접 빌드되면서 docker-ce 저장소는 deprecated되었습니다. 그래서 docker/cli 저장소의 completion 파일을 사용해야 합니다.
Bash 외의 다른 Shell용 Docker completion 파일도 있나요?
있습니다. docker/cli 저장소의 contrib/completion 경로에서 Bash, Zsh, fish, powershell용 파일을 제공합니다.