보안되지 않은 레지스트리에 매니페스트 목록 푸시
이 단계에서는 보안되지 않은 레지스트리에 매니페스트 목록을 푸시하는 방법을 살펴보겠습니다. 보안되지 않은 레지스트리는 TLS/SSL 인증서를 사용하지 않는 레지스트리이며, 프로덕션 환경에서는 권장되지 않지만 테스트 또는 내부 네트워크에 유용할 수 있습니다.
기본적으로 Docker 는 레지스트리에 대한 보안 연결을 요구합니다. 보안되지 않은 레지스트리에 푸시하려면 해당 특정 레지스트리 주소에 대한 보안되지 않은 연결을 허용하도록 Docker 데몬을 구성해야 합니다.
이 랩에서는 TLS 없이 실행되는 로컬 레지스트리를 사용하여 보안되지 않은 레지스트리를 시뮬레이션합니다. 먼저, 로컬 레지스트리 컨테이너를 실행해 보겠습니다. 호스트의 포트 5000 을 컨테이너의 포트 5000 에 매핑합니다.
docker run -d -p 5000:5000 --name registry registry:2
컨테이너가 실행 중임을 나타내는 다음과 유사한 출력을 볼 수 있습니다.
Unable to find image 'registry:2' locally
2: Pulling from library/registry
...
Status: Downloaded newer image for registry:2
a1b2c3d4e5f6...
이제 localhost:5000에서 이 보안되지 않은 레지스트리를 신뢰하도록 Docker 데몬을 구성해야 합니다. 이렇게 하려면 Docker 데몬 구성 파일을 수정해야 합니다. 이 파일의 위치는 다를 수 있지만 대부분의 Linux 시스템에서는 /etc/docker/daemon.json입니다.
sudo nano를 사용하여 이 파일을 편집합니다.
sudo nano /etc/docker/daemon.json
파일이 없으면 만들 수 있습니다. insecure-registries 키를 추가하거나 수정하여 localhost:5000을 포함합니다. 파일 내용은 다음과 같아야 합니다.
{
"insecure-registries": ["localhost:5000"]
}
파일을 저장하고 편집기를 종료합니다 (nano 에서 Ctrl+X, Y, Enter).
구성을 수정한 후 변경 사항을 적용하려면 Docker 데몬을 다시 시작해야 합니다.
sudo systemctl restart docker
이제 보안되지 않은 레지스트리 주소로 매니페스트 목록에 태그를 지정하고 푸시할 수 있습니다. 첫 번째 단계에서 생성한 my-alpine:latest 매니페스트 목록을 사용합니다.
docker manifest create localhost:5000/my-alpine:latest alpine:latest arm64v8/alpine:latest
docker manifest push localhost:5000/my-alpine:latest
레지스트리가 보안되지 않더라도 푸시가 성공했음을 나타내는 출력을 볼 수 있습니다.
Pushed manifest list localhost:5000/my-alpine:latest
이는 Docker 데몬을 구성한 후 보안되지 않은 레지스트리에 매니페스트 목록을 푸시하는 방법을 보여줍니다.