docker -> podman shortnames.conf 설정을 해야하는데
작성자 정보
- 삼둡 작성
- 작성일
컨텐츠 정보
- 3,382 조회
- 목록
본문
Container image short names in Podman | Enable Sysadmin (redhat.com)
https://www.redhat.com/sysadmin/container-image-short-names
사람들이 Podman과 컨테이너에 대해 이야기하기 위해 저에게 다가올 때, 저는 보통 Docker에 대해 잘 알고 있는지 물어봅니다. 대부분의 사람들은 잘 알고 있으며, 대화는 곧 Podman이 Docker를 대체할 수 있다는 사실 이상으로 넘어갑니다. 사실, Podman을 특별하게 만드는 유용하고 혁신적인 기능이 많이 있습니다. Podman은 루트리스 지원이 뛰어나고, 시스템드 단위 파일을 생성하여 시스템드 서비스를 쉽게 컨테이너화할 수 있으며, 강력한 RESTful API를 통해 macOS와 Windows에서 Podman을 실행할 수 있습니다. 이는 훌륭한 기능 중 일부에 불과합니다.
Podman이 Docker에서 상속한 일부 명령은 더 많은 사용자에게 더 유용하도록 개선되었습니다. 예를 들어, podman 이미지 제거 명령은 --all 플래그를 수신하여 하나의 이미지뿐만 아니라 모든 이미지를 제거합니다.
짧은 이름 사용의 위험
짧은 이미지 이름을 완성하는 이러한 유연성은 많은 리눅스 배포판에서 Docker.io 이상의 것을 지원하기 위해 사용됩니다. 예를 들어, 페도라(Fedora)는 첫 번째 검색 레지스트리로 registry.fedoraproject.org를 설정하여 podman 풀 페도라가 항상 페도라 커뮤니티의 공식 레지스트리에서 가져올 수 있도록 합니다. 포드맨은 검색 프로세스를 인쇄하여 사용자가 무슨 일이 일어나고 있는지 더 명확하게 알 수 있도록 합니다.
다른 이미지를 살펴보고 새로운 페도라 33 시스템에서 podman pull nginx를 실행해 보겠습니다:

Podman은 이미지가 성공적으로 풀링될 때까지 /etc/containers/registries.conf에 지정된 순서대로 구성된 검색 레지스트리에 접촉하는 것을 볼 수 있습니다.
짧은 이미지 완성 기능은 널리 사용되고 있으며 사용자와 고객들의 요구가 높은 기능이지만, 악용될 수도 있습니다. example.com과 registry.com에서 repo/image:latest를 가져오는 초기 예제를 살펴보겠습니다. registry.com/repo/image:latest를 가져오려고 하지만, 대신 example.com/repo/image:latest를 가져올 수도 있습니다. 잘못된 이미지를 가져오면 서비스 다운타임, 오작동, 심지어 보안 위협과 같은 모든 종류의 원치 않는 결과를 초래할 수 있습니다. 올해 초에 보고된 바와 같이, 공격자는 예시 예시닷컴/repo에 악성 이미지를 삽입하여 사용자를 속이고 공격할 수 있습니다.
짧은 이미지 이름을 가져올 때 내재된 모호성으로 인해 항상 이미지의 출처를 완전히 명시하는 것이 좋습니다. 예를 들어, fedora가 아닌 registry.fedoraproject.org/fedora:latest를 사용하는 것이 좋습니다. 반면에 짧은 이름 사용의 편리함도 인정하기 때문에 신뢰할 수 없는 출처에서 이미지를 가져올 위험을 없애는 안전한 짧은 이름 사용 방법을 개발했습니다.
짧은 이름 별칭
짧은 이름을 안전하게 사용하기 위해 짧은 이름 별칭을 도입합니다. BASH의 별칭과 유사하게, 짧은 이름 별칭은 왼쪽에 있는 이름이 오른쪽 값으로 대체됩니다. 짧은 이름 별칭은 이제 다음과 같이 registries.conf 파일에서 구성할 수 있습니다:
unqualified-search-registries=["registry.fedoraproject.org", "quay.io"]
[별칭]]
"fedora"="registry.fedoraproject.org/fedora"
모든 별칭은 새 별칭 테이블에 지정해야 합니다. 위의 registries.conf 파일을 사용하면, 파드맨은 페도라를 즉시 안전하게 registry.fedoraproject.org/fedora로 확인한다. 불완전한 검색 레지스트리 필드에 나열된 레지스트리를 사용하여 페도라를 확인하려고 시도하지 않습니다.
이 예제에서는 quay.io/fedora가 존재하면 가져오지 않고 별칭인 registry.fedoraproject.org/fedora로 지정된 이미지만 가져옵니다.
현재 커뮤니티 전체에서 사용할 수 있는 짧은 이름 별칭의 공개 목록을 작성하고 있습니다. 여러 리눅스 배포판과 회사에서 Podman 유지 관리자와 협력하여 짧은 이름 목록을 작성하는 데 관심을 표명했으며, 이 목록은 github.com/containers/shortnames에서 관리하고 있습니다.
하지만 짧은 이름으로 가져오려고 하는데 일치하는 별칭이 없으면 어떻게 될까요?

일치하는 별칭을 찾지 못하면, 파드맨은 이제 사용자에게 검색할 수 없는 레지스트리 중 하나를 선택하라는 메시지를 표시한다. 선택한 이미지가 성공적으로 풀링되면, 파드맨은 자동으로 새로운 짧은 이름의 별칭을 사용자의 $HOME/.config/containers/short-name-aliases.conf 파일에 기록한다. 이후 풀을 시도할 때 이 별칭을 사용하여 이전에 선택되어 풀링된 이미지가 제거되더라도 이를 확인합니다. 둘 다 동일한 별칭을 지정하는 경우 short-name-aliases.conf가 registries.conf보다 우선합니다.
짧은 이름의 별칭이 기록되면 더 이상 프롬프트가 표시되지 않으며 Podman이 짧은 이름을 올바르게 자동 완성합니다:
이미지 pull 그리고 컨테이너 실행
사용할 서버는 nextcloud 이다.
그렇기에 해당 이미지를 pull하면 되나, 데비안에서 podman는 도커허브에 있는 대부분의 이미지는 pull이 되지 않는다. 해당 문제를 해결하기 위해선 podman의 저장소 설정파일을 수정하면 된다.
에러창
#vim /etc/containers/registries.conf.d/shortnames.conf
#`"nextcloud"="docker.io/library/nextcloud"` 내용 추가 후 저장
#그후 pull명령어를 실행하면 된다.
#podman pull nextcloud
자세한건 podman issue에 있으니 참고하면 된다.
https://github.com/containers/podman/issues/6592
관련자료
-
이전
-
다음