Cloud/Container

Docker 이미지를 수정하여 Docker Hub로 푸시하는 실습.

데니스홍 2023. 2. 13. 00:35

기존 이미지를 가져와 수정하고 자신의 저장소에 푸시하는 Docker Hub을 사용하는 실습의 단계별 가이드입니다:

1. Docker Hub 계정 만들기 및 로그인

  • Docker Hub 계정이 없다면 계정을 만듭니다.
  • 계정 정보로 Docker Hub에 로그인합니다.

2. 기존 이미지 검색

  • 수정할 기존 이미지를 Docker Hub에서 검색합니다.
  • 예를 들어, 공식 Nginx 이미지를 검색할 수 있습니다.

3. 이미지 다운로드

  • docker pull 명령을 사용하여 이미지를 로컬 컴퓨터에 다운로드합니다.
  • 예를 들어, Nginx 이미지를 다운로드하려면 다음 명령을 실행합니다:
docker pull nginx

4. 이미지 수정

  • 기존 이미지를 수정하는 새로운 Dockerfile을 작성합니다.
  • 예를 들어, 웹 서버에서 제공되는 사용자 정의 index.html 파일을 Nginx 이미지에 추가할 수 있습니다.
  • 다음은 Dockerfile의 예입니다:
FROM nginx COPY index.html /usr/share/nginx/html/
  • Dockerfile과 동일한 디렉토리에 사용자 정의 index.html 파일을 만들고 "my-nginx-image" 텍스트를 포함하도록 수정합니다.
  • 예를 들어, index.html 파일은 다음과 같을 수 있습니다:
<!DOCTYPE html>
<html>
<head>
  <title>Welcome to my Nginx image!</title>
</head>
<body>
  <h1>Hello from my Nginx image!</h1>
  <p>This is a custom index page served by my Nginx image.</p>
  <p>This image is called "my-nginx-image".</p>
</body>
</html>

5. 수정된 이미지 빌드

  • docker build 명령을 사용하여 Dockerfile을 사용하여 수정된 이미지를 빌드합니다.
  • 예를 들어, 수정된 Nginx 이미지를 빌드하려면 다음 명령을 실행합니다:
docker build -t myusername/my-nginx-image .
  • myusername를 Docker Hub 사용자 이름으로, my-nginx-image를 자신이 지정한 이미지 이름으로 바꿉니다.

6. 이미지 Docker Hub에 푸시

  • docker push 명령을 사용하여 수정된 이미지를 Docker Hub의 자신의 저장소에 푸시합니다.
  • 예를 들어, 수정된 Nginx 이미지를 Docker Hub에 푸시하려면 다음 명령을 실행합니다:
docker push myusername/my-nginx-image
  • 이렇게 하면 이미지가 Docker Hub에 업로드되며 다른 사람이 사용할 수 있습니다.

7. 수정된 이미지 테스트

  • docker run 명령을 사용하여 수정된 이미지를 테스트합니다.
  • 예를 들어, 수정된 Nginx 이미지를 테스트하려면 다음 명령을 실행합니다.

8. Docker 이미지 실행

  • docker run 명령을 사용하여 이미지를 실행합니다.
  • 예를 들어, 실행할 이미지 이름은 myusername/my-nginx-image이며, 호스트의 포트 8080을 컨테이너의 포트 80으로 매핑하려면 다음 명령을 실행합니다:
docker run -d -p 8080:80 myusername/my-nginx-image
  • 이렇게 하면 이미지에서 컨테이너를 시작하고 컨테이너의 웹 서버가 호스트의 포트 8080에서 실행됩니다.

9. 웹 브라우저에서 확인

  • 웹 브라우저에서 http://localhost:8080으로 이동하여 컨테이너에서 제공되는 사용자 정의 index.html 페이지가 로드되는지 확인합니다.
  • 페이지는 "my-nginx-image"라는 텍스트를 포함해야 합니다.

10. 컨테이너 종료

  • docker ps 명령을 사용하여 실행 중인 컨테이너의 ID를 찾습니다.
  • docker stop 명령을 사용하여 컨테이너를 종료합니다.
  • 예를 들어, 컨테이너 ID가 1234abcd5678이면 다음 명령을 실행합니다:
docker stop 1234abcd5678

11. Docker 이미지 삭제

  • docker rmi 명령을 사용하여 이미지를 삭제합니다.
  • 예를 들어, 이미지 이름이 myusername/my-nginx-image이면 다음 명령을 실행합니다:
docker rmi myusername/my-nginx-image

이상으로 Docker Hub을 사용하여 기존 이미지를 가져와 수정하고 자신의 저장소에 푸시하는 실습이 끝났습니다. 이 실습을 통해 Docker Hub을 사용하여 이미지를 수정하고 공유하는 방법을 배울 수 있습니다.