이재홍의 언제나 최신 Docker - Unit 9.2 push 명령으로 이미지 올리기

저작권 안내
  • 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
  • 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.

Docker Hub 사용하기

이재홍 http://www.pyrasis.com

push 명령으로 이미지 올리기

이제 Docker Hub 공개 저장소(Public Repository)에 이미지를 올려보겠습니다. 먼저 example-nginx 디렉터리를 생성하고, Dockerfile을 작성합니다. 지금까지 계속 사용해왔던 Nginx 예제입니다.

~$ mkdir example-nginx
~$ cd example-nginx
~/example-nginx/Dockerfile
FROM ubuntu:22.04
MAINTAINER Foo Bar <exampleuser@example.com>

RUN apt-get update
RUN apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
RUN chown -R www-data:www-data /var/lib/nginx

VOLUME ["/data", "/etc/nginx/site-enabled", "/var/log/nginx"]

WORKDIR /etc/nginx

CMD ["nginx"]

EXPOSE 80
EXPOSE 443

docker build 명령으로 이미지를 생성합니다. 여기서 exampleuser 부분은 본인의 Docker Hub 사용자 계정으로 변경합니다.

~/example-nginx$ sudo docker build --tag exampleuser/example-nginx:0.1 .

Docker Hub에 이미지를 올리려면 이미지 이름을 <Docker Hub 사용자 계정>/<이미지 이름>:<태그> 형식으로 생성해야 합니다. 아무 사용자 이름이나 사용할 수 있지만 내 계정 이름과 일치해야 이미지를 올릴 수 있습니다. 태그를 지정하지 않으면 latest가 됩니다.

Docker Hub에 이미지를 올리기 전에 로그인부터 합니다. 사용자 계정과 비밀번호를 입력합니다.

~/example-nginx$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: exampleuser
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

이제 docker push 명령으로 이미지를 올립니다.

~/example-nginx$ sudo docker push exampleuser/example-nginx:0.1

docker push <Docker Hub 사용자 계정>/<이미지 이름>:<태그> 형식입니다.

잠시 기다리면 이미지가 Docker Hub의 공개 저장소에 완전히 올라갑니다. Docker Hub 페이지에서 Repositories 메뉴를 클릭하면 방금 올렸던 <Docker Hub 사용자 계정>/example-nginx 이미지가 표시됩니다(Docker Hub에 생성된 공개 저장소가 없다면 이미지를 올렸을 때 공개 저장소가 자동으로 생성됩니다).

그림 13-4 Docker Hub 저장소에 이미지 업로드 완료

그림 13-4에서 Create repository 버튼을 통해 공개 저장소를 미리 만든 뒤 docker push 명령으로 이미지를 올려도 됩니다. 이제 다른 사람들이 docker pull <Docker Hub 사용자 계정>/example-nginx 명령으로 example-nginx 이미지를 사용할 수 있습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

2022-10-03