- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker Hub 사용하기
push 명령으로 이미지 올리기
이제 Docker Hub 공개 저장소(Public Repository)에 이미지를 올려보겠습니다. 먼저 example-nginx 디렉터리를 생성하고, Dockerfile을 작성합니다. 지금까지 계속 사용해왔던 Nginx 예제입니다.
~$ mkdir example-nginx
~$ cd example-nginx
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에서 Create repository 버튼을 통해 공개 저장소를 미리 만든 뒤 docker push
명령으로 이미지를 올려도 됩니다. 이제 다른 사람들이 docker pull <Docker Hub 사용자 계정>/example-nginx
명령으로 example-nginx 이미지를 사용할 수 있습니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.