Docker/Kubernetes - (4) docker image 이해 및 배포

2022. 3. 14. 21:24·AI Engineering/MLOps
Environment: Ubuntu 18.04

1. Docker image

Docker는 다음과 같이 docker hub라는 중앙 이미지 저장소에서 image를 다운받습니다. Docker계정만 있으면 누구든 image를 올리고 내려받을 수 있습니다. 이외에도 docker container로 구현되어 있는 docker private registry로 개인 서버에 image를 저장할 수 있는 저장소를 만들 수 있습니다만 여기서는 docker hub만을 이용하겠습니다.

docker hub

오늘은 다음과 같은 차례를 통해 docker image를 이해해보죠.

  • docker image를 Host에서 생성
  • 해당 image를 docker hub에 업로드
  • 해당 image를 Host에서 pull

1.1 Docker image 이해와 생성

다음과 같이 ubuntu:16.04 image로 docker container를 생성하고 test라는 파일하나를 만들어 봅시다.

docker run

저만의 docker image를 만들기 위해서는 Host에서 docker commit명령어를 사용합니다.

docker commit -a 'da2so' -m 'writing test' myubuntu  myubuntu:first

docker commit

 

docker images를 통해 실제로 image가 생성된 것을 확인가능하며 옵션 -a는 author의미이고 -m은 commit message이며 myubuntu:first는 생성할 이미지의 tag입니다. 이 상황에서 docker image는 기존의 docker image엿던 ubuntu:16.04와는 아래와 같은 차이를 보입니다.(캡처된 Layers 및 sha는 docker inspect ubuntu:16.04(or myubuntu:first)로 확인가능합니다.)

docker layer

2. Docker image 배포

위에서 말씀드렸듯이 docker hub에서 이미지를 다운받기 때문에 이번에는 반대로 제가 만든 image를 업로드해봅시다. docker hub에 들어가셔서 계정을 만드시고 테스트를 위한 repository를 다음과 같이 만들어봅니다. repo만드는 과정은 create repository를 누르셔서 진행하시면 됩니다.

docker hub example

 

그럼 이제 image를 업로드할 장소를 만들어놨으니 Host에서 myubuntu image를 업로드해보죠. docker login을 typing하시고 docker hub에서 가입한 id, password를 입력해주면 로그인됩니다.

docker login

업로드하기 전에 만든 repo이름이 da2so/test_repo이기 때문에 기존 myubuntu image를 docker tag명령어로 da2so/test_repo:0.0으로 바꿔줍니다. 그리고 해당 image를 docker hub에 push합니다.

docker tag myubuntu:first da2so/test_repo:0.0
docker push da2so/test_repo:0.0 

docker push

 

마지막으로 docker hub에 잘 올라갓는지 확인하고 docker pull을 통해 docker hub로부터 다운받아 봅시다.

success to upload docker image into dockerhub

 

반응형
저작자표시 (새창열림)

'AI Engineering > MLOps' 카테고리의 다른 글

Docker/Kubernetes - (6) Docker daemon  (0) 2022.03.15
Docker/Kubernetes - (5) Dockerfile  (0) 2022.03.14
Docker/Kubernetes - (3) docker container 네트워크/로깅/제한  (0) 2022.03.13
Docker/Kubernetes - (2) Docker image/container  (0) 2022.03.12
Docker/Kubernetes - (1) Docker란?  (0) 2022.03.12
'AI Engineering/MLOps' 카테고리의 다른 글
  • Docker/Kubernetes - (6) Docker daemon
  • Docker/Kubernetes - (5) Dockerfile
  • Docker/Kubernetes - (3) docker container 네트워크/로깅/제한
  • Docker/Kubernetes - (2) Docker image/container
Sin-Han Kang
Sin-Han Kang
Explainable AI (XAI), Model Compression, Image and Video Encoding and NAS
    250x250
  • Sin-Han Kang
    da2so
    Sin-Han Kang
  • 전체
    오늘
    어제
    • 분류 전체보기 (78)
      • AI Engineering (40)
        • TensorFlow (10)
        • PyTorch (6)
        • MLOps (15)
        • NVIDIA (5)
        • OpenVINO (3)
      • AI paper review (6)
        • Explainable AI (5)
        • Model Compression (10)
        • Mobile-friendly (7)
      • Computer Science (6)
      • 일상 (4)
  • 블로그 메뉴

    • Home
    • About me
    • Guest book
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Mediapipe
    docker
    Model Compression
    TensorFlow.js
    pytorch
    Airflow
    Python
    style transfer
    TFLite
    OpenVINO
    object detection
    kubernetes
    Explainable AI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sin-Han Kang
Docker/Kubernetes - (4) docker image 이해 및 배포
상단으로

티스토리툴바