Featured image of post Docker 이미지 업로드하기

Docker 이미지 업로드하기

Docker CLI에서 이미지를 업로드하는 법

이전까지 우리는 이미지를 내려받고, 컨테이너를 실행하고, 이미지를 빌드하는 법을 배웠다.
이제, 이미지를 업로드하는 방법을 알아보자.

🏷️ 이미지 태그 변경

이미지의 태그를 변경한다.

1
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

⬆️ 이미지 업로드

1
docker push [OPTIONS] NAME[:TAG]

Options:

  • -all-tags(-a): 레포지토리에 이미지의 모든 태그를 푸시한다.

주의사항

  • Docker hub가 아닌, ECR이나 자체 구축한 Hub와 같이 별도의 레지스트리에 업로드하려는 경우, 이름은 full image name형식으로 작성되어야 한다.
  • Push 이전에 docker login을 통해서 사용할 registry에 인증해야 한다.

Full image name 포맷

1
2
3
[HOST[:PORT_NUMBER]/]PATH
# namespace를 명시하는 경우
[HOST[:PORT_NUMBER]/][NAMESPACE/]REPOSITORY
  • HOST: registry의 Host
  • PORT_NUMBER: registry서버의 포트
  • NAMESPACE: 논리적 구분 단위. Docker Hub에서는 Namespace가 필수임.
    • 없으면 library
  • REPOSITORY: 이미지의 이름

ECR 예시는 다음과 같다:

1
<aws_account_id>.dkr.ecr.ap-northeast-2.amazonaws.com/myapp:v1

ECR과 같은 경우는, URL에 이미 논리적인 구분이 적용되어있어서 NAMESPACE를 사용하지 않음.

Private Registry 예시는 다음과 같다:

1
my.registry.com:5000/mynamespace/myapp:v1

🔑 Docker Hub 레지스트리에 로그인

1
docker login [OPTIONS] [SERVER[:PORT]]

Options:

  • --password(-p): password
  • --password-stdin: STDIN으로 password를 입력
  • --username(-u): username

GitHub Container Registry에 로그인하기:

1
2
3
4
docker login ghcr.io
Username: <your_username>
Password: <Fine-grained personal access token>
Login Succeeded

Docker Hub에 업로드하기:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker push riveroverflow/cloudwave:base.v1
The push refers to repository [docker.io/riveroverflow/cloudwave]
8016e9d19af3: Pushed
882955112ee7: Pushed
3fd98b9cc2bb: Pushed
5f70bf18a086: Pushed
7922986690e5: Pushed
98eb01e614a6: Pushed
8d6b7eb76b62: Mounted from library/ubuntu
base.v1: digest: sha256:a71d873faaedddf9b1dd5d71bbe941b19fc0293f04ebb370e5075f861c1a3cd5 size: 1780

docker search로 조회:

1
2
3
docker search riveroverflow/cloudwave
NAME                                    DESCRIPTION   STARS     OFFICIAL
riveroverflow/cloudwave                               0
Hugo로 만듦
JimmyStack 테마 사용 중