오늘의 오류 - Docker 실행 시 오류

반응형

오류 메세지

Error response from daemon: Head "https://registry-1.docker.io/v2/moby/buildkit/manifests/buildx-stable-1": unauthorized: incorrect username or password

어제까지만 해도 잘 동작하던 docker가 위와 같은 에러를 내뿜고 있었습니다.

 

원인 찾기

어제 한 일을 돌이켜 보면, 서비스에서 사용할 base docker 이미지를 만들어서 docker hub에 올렸습니다.

 

그런데 Local은 arm64 환경이었고, 배포 환경은 amd64였기 때문에 둘 다에서 사용하려면 multi-platform build를 진행해야 했죠.

 

아래 명령으로 진행을 했고,

docker buildx create --name mybuilder --use --bootstrap
docker buildx build --push --platform linux/amd64,linux/arm64 -f Dockerfile -t <docker_hub_id>/<repository_name>:<버전> .

그 전에 docker hub에 push하기 위해서 login을 먼저 했습니다.

 

해결하기

그래서 우선 docker logout을 통해서 login을 풀었습니다.

로그인을 풀었더니 build는 정상적으로 진행되는데, 전에 보지 못했던 메세지가 추가로 보였습니다.

 => [internal] booting buildkit                                                                                                                                                                                                                                                                       10.9s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                                                                                                                                                    10.4s
 => => creating container buildx_buildkit_mybuilder0

아마도 buildx를 이용해서 build를 진행할 때 지정해 놨던 것이 계속 사용되고 있는 듯 했습니다.

 

$ docker buildx ls            
NAME/NODE       DRIVER/ENDPOINT             STATUS  BUILDKIT PLATFORMS
mybuilder *     docker-container                             
  mybuilder0    unix:///var/run/docker.sock stopped          
default         docker                                       
  default       default                     running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
desktop-linux   docker                                       
  desktop-linux desktop-linux               running 20.10.21 linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6

현재 builtkit이 mybuilder가 사용되고 있는 듯하여, default로 다시 변경하고 mybuilder는 우선 지워줬습니다.

 

$ docker buildx use default
$ docker buildx stop mybuilder
$ docker buildx rm mybuilder

 

그랬더니 예전처럼 정상적으로 동작이 됐습니다!

반응형

'오늘의오류' 카테고리의 다른 글

오늘의 오류 - Flutter Bloc 사용 시 warning  (0) 2022.12.15