← 전체 글로 돌아가기

Docker

Docker 이미지 태그 배포가 실패했을 때

Docker 배포에서 이미지 버전 문제를 진단하고 빠르게 수정하는 방법을 정리했습니다.

로컬에서 잘 동작하던 Docker 설정도 배포 환경에서는 다르게 보일 수 있다. 특히 이미지 태그와 버전이 기대와 다를 때가 자주 있다.

현재 실행 중인 이미지 확인

먼저 배포된 서버에서 실제로 어느 이미지가 실행 중인지 확인한다.

docker ps --format "{{.Image}} {{.Names}}"
docker images | grep service-name

예상한 태그(예: service-name:v1.2.3)가 실행 중인지, 아니면 다른 버전이 실행 중인지 확인한다.

이미지 메타데이터 확인

docker inspect service-name:latest | grep -E 'Created|RepoTags|ImageID'

이미지가 언제 빌드되었고, 실제 태그가 무엇인지 확인한다. docker inspect로 이미지의 생성 시간과 환경변수도 볼 수 있다.

최신 이미지 다시 당겨오기

docker pull service-name:latest
docker pull registry.example.com/service-name:v1.2.3

Docker 레지스트리에서 최신 이미지를 다시 당겨온다. 로컬 캐시가 오래된 이미지일 수도 있기 때문이다.

컨테이너 환경 확인

docker exec service-name env | grep -E 'VERSION|TAG|IMAGE'
docker inspect service-name | grep -A 50 'Env'

실행 중인 컨테이너의 환경변수에서 버전 정보를 확인한다. 빌드 시간이나 커밋 해시 같은 정보가 있으면 어느 소스 코드로 빌드되었는지 알 수 있다.

로그에서 버전 확인

docker logs service-name | head -20

애플리케이션 시작 로그에서 버전 정보를 확인한다. 많은 애플리케이션은 시작할 때 자신의 버전을 출력한다.

재배포 전 체크리스트

  1. 레지스트리에 최신 이미지가 정말로 푸시되어 있는가
  2. docker pull로 최신 버전을 받을 수 있는가
  3. 배포 설정에서 올바른 태그를 지정했는가 (latest 대신 구체적인 버전)
  4. 이전 이미지는 이미 정리했는가
  5. 배포 후 올바른 이미지가 실행 중인지 확인했는가

이미지 태그 문제는 배포 설정을 정확히 하는 것만으로도 대부분 해결된다.