[Docker] Quick hands-on guides

귤티·2024년 3월 26일

Capstone

목록 보기
16/17

Docker overview

Docker는 application 개발, shipping, running을 위한 open platform이다. Docker는 내 infrastructure로부터 application을 분리하는 것을 가능하게 한다, 그래서 software를 빠르게 deliver할 수 있다. Docker로, application을 관리하는 것과 같은 방식으로 infrastructure를 관리할 수 있다. 코드 전달, 테스트 및 배포를 위한 docker의 방법론의 이점을 사용하면 코드 작성과 production 환경에서의 실행 사이의 delay를 눈에 띄게 감소시킬 수 있다.

The Docker platform

Docker는 container라 불리는 느슨하게 고립된 환경에서 application을 package 하고 실행하는 능력을 제공한다. 고립과 보안은 주어진 host에서 많은 container들을 동시에 실행하게 한다. Container들은 가볍고 application을 실행하는 데에 필요한 모든 것들을 포함한다, 그래서 host에 설치된 것들에 의존할 필요가 없다. work하는 동안 container들을 공유할 수 있고, 공유하는 모든 사람이 동일한 방식으로 작동하는 동일한 컨테이너들을 갖게 할 수 있다.

Docker는 tooling과 container의 lifecycle을 관리하는 platform을 제공한다:

  • containers를 사용하여 supporting component들과 application을 개발
  • container는 application을 배포하고 테스트하는 단위가 된다.
  • 준비가 되면, application을 production 환경에서 container 또는 조정된 서비스로 배포한다. 이것은 production 환경이 local data center, cloud provider, or a hybrid of the two이든 아니든 같게 작동한다.

What can I use Docker for?

Fast, consistent delivery of your applications

Docker는 application과 service를 제공하는 local container를 사용한 standardized environments에서 developer가 work할 수 있도록 하용함으로써 개발 생명주기를 streamline(합리화)한다.

Container는 지속적인 통합과 지속적인 배포(CI/CD) workflows에 적합하다.

Consider the following example scenario:

  • developers locally하게 코드를 작성하고 Docer container를 이용해 그들의 동료에게 이 work를 공유한다
  • developers가 bugs를 찾았을 때, 그들은 개발 환경 내에서 수정할 수 있고 test와 확인을 위해 테스트 환경에다 재배포 할 수 있다.
  • testing이 완료되면, customer에게 수정을 갖게하는 것은 production environment에 수정된 image를 pushing하는 것만큼 간단하다.

Responsive deployment and scaling

Docker의 container-based platform은 높은 portable workloads를 허용한다. Docker container는 depelover의 local laptop, data center 안의 물리적 또는 가상 머신, cloud providers, 또는 환경들의 mixture에서 실행할 수 있다.

Docker의 portability와 경량성은 또한 동적으로 workloads를 관리하는 것과, 비지니스 요구에 따라, applications과 service를 확장 또는 축소 쉽게 만들 수 있다.

Running more workloads on the same hardware

Doker는 빠르고 가볍다. 이것은 생존 가능한, 비용 효과적인 대안을 hypervisor-based virtuar machines에게 제공한다, 그래서 business 목표를 얻기 위해 server 용량의 많은 부분을 사용할 수 있다. Docker는 더 적은 resource로 더 많은 것을 해야 하는 높은 밀도의 환경과 작거나 중간 정도의 배포에 효과적이다.

Docker architecture

Docker는 clien-server architecture이다. Docker client는 Docker container 구축, 실행, 배포라는 무거운 작업을 하는 Docker Demon에게 말한다.
Docker client와 daemon은 같은 system에서 실행될 수 있고 또한 원격의 Docker daemon에 Docker client를 연결할 수 있다. Docker client와 daemon은 UNIX socket 또는 network interface 위에서 REST API를 사용해 communicate한다. 다른 Docker client는 Docker Compose이다, 이것은 containers의 set를 구성하는 applications으로 작업할 수 있게 한다.

The Docker daemon

Doker daemon (dockerd)는 Docker API 요청을 듣고 images, containers, networks, and volumes과 같은 Docker object들을 관리한다. Daemon은 Docker service들을 관리하기 위해 다른 daemon들과 communicate 할 수 있다.

The Docker client

Docker Client(docker)는 많은 Docker user들이 Docker와 상호작용하는 주요한 방식이다. docker run과 같은 command들을 사용할 때, client는 그것들을 수행하는 dockerd에 이러한 command들을 보낸다. docker command는 Docker API를 사용한다. Docker client는 하나 이상의 daemon과 communicate할 수 있다.

Docker Desktop

Docker Desktop은 container화 된 application들과 microsevice들을 build하고 공유하는 것을 가능하게 하는 Mac, windows or Linux 환경에 application으로 쉽게 설치할 수 있다. Docker Desktop은 Docker daemon(dockerd), the Docker client(docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helpers들을 포함한다.

Docker registries

Docker registry는 Docker image들을 저장한다. Docker Hub는 누구나 사용할 수 있는 public registry이고, Docker는 기본적으로 Docker Hub에서 image들을 찾는다. 이것을 내 private registry에서 실행할 수도 있다.

docker pull 또는 docker run commnad들을 사용할 때, Docker는 구성된 registry로부터 요구된 image들을 가져온다. docker push command를 사용할 때, docker는 image를 구성된 registry에 push 한다.

Docker objects

Docker를 사용할 때, images, containers, networks, volumes, plugins 그리고 다른 객체들을 생성하고 사용한다. 이 section은 이러한 객체 중 일부에 대한 간략한 개요이다.

Images

image는 Docker container 생성지침이 포함된 읽기 전용 template이다. 종종 image는 다른 추가적인 customiazation을 포함한 다른 image를 기반으로 한다. 예를 들어, ubuntu image에 기반한 image를 build 할 수 있지만, Apache web server와 application을 실행하는 데에 필요한 세부 구성 요소들과 application을 설치해야 한다.

아마 나만의 image들을 생성하거나 다른 사람에 의해 만들어지고 registry에 게시된 것만 사용할 것이다. 나만의 image를 build 하기 위해, imag를 생성하고 실행하는 데에 필요한 단계를 정의하기 위한 간단한 syntax로 된 Dockerfile을 생성한다. Dockerfile의 각 명령은 image에 layer를 만든다. Dockerfile을 변경하고 image를 rebuild할 때, 변경된 layer들에 대해서만 rebuilt 된다. 이는 다른 가상화 기술들과 비교했을 때 image를 가볍고, 작고, 빠르게 만드는 이유 중 하나이다.

Containers

container는 image의 실행 가능한 instance이다. Docker API 또는 CLI를 사용하여 container를 생성, 시작, 정지, 이동 또는 삭제를 할 수 있다. container를 하나 또는 이상의 networks에 연결할 수 있고, 이것을 storage에 붙이거나 current state에 기반된 new image를 생성할 수도 있다.

기본적으로, container는 상대적으로 다른 containers와 그 host machine으로부터 잘 분리되어 있다. container's network, storage, 또는 다른 내재된 subsistems들이 다른 container 또는 host machine으로부터 얼마나 고립되어 있는지를 조절할 수 있다.

container는 해당 이미지와 container를 생성하고 시작할 때 그것을 제공하는 어느 구성 option들과 마찬가지로, image에 의해 정의된다. container가 제거되었을 때, 영구적인 storage에 저장되지 않은 state에 대한 모든 변경은 사라진다.

Example docker run command

아래의 command는 ubuntu container를 실행하고, local command-line session에 대한 대화형으로 연결되고, /bin/bash를 실해한다.

docker run -i -t ubuntu /bin/bash

이 command를 실행할 때, 아래와 같은 일들이 일어난다(기본 registry 구성요소를 사용했다고 가정했을 때):
1. locally 하게 ubuntu image를 가지고 있지 않는다면, Docker는 configured registry로부터 Pull 해온다.
2. Docker는 마치 docker container create 명령어를 수동으로 실행한 것처럼 new container를 생성한다.
3. Docker는 마지막 Layer로 container에 읽기 전용 filesystem을 할당한다. 이것은 local filesystem 안에서 실행 중인 container가 file과 directories를 생성 또는 수정할 수 있도록 허락한다.
4. networking options을 지정하지 않았기 때문에, Docker는 container를 default network로 연결하기 위해 network interface를 생성한다. 이것은 container에 IP address를 할당하는 것이 포함된다. 기본적으로, container는 host machine의 network connection을 사용해 외부의 networks와 연결할 수 있다.
5. Docker는 container를 시작하고 /bin/bash를 실행한다. container가 대화형으로 실행되고 terminal에 연결되어 있기 때문에(-i와 -t flag 때문에), Docker가 출력을 terminal에 기록하는 동안 keyboard를 사용하여 input을 제공할 수 있다.
6. /bin/bash 명령을 종료하기 위해 exit을 실행할 때, container는 멈추나 삭제되지는 않는다. 재시작거나 삭제할 수 있다.

Get Started

What is a container?

container는 code를 위한 고립된 환경이다. 이것은 container는 내 operating system, files에 대한 어떤 정보도 가지고 있지 않음을 의미한다. 이것은 Docker Desktop에 의해 제공되는 환경에서 실행한다. Container는 base operating system까지 실행에 필요한 모든 것을 가지고 있다. container를 관리하고 탐구하기 위해 Docker desktop을 사용할 수 있다.

이 연습에서는, Docker Desktop 안의 실제 container를 보고 탐구할 수 있다.

시작하기 전에, Docker Desktop의 최신 버전을 가져오자. Docker는 정기적으로 새 기능을 추가하며 이 가이드는 Docker Desktop의 최신버전에서만 작동할 수 있는 일부분이다.

Step 1: Set up the walkthrough

container를 실행하기 위해 해야할 첫 번째 것이다. 아래의 명령을 따르자:
1. Docker Desktop을 열고 search를 선택하라
2. search 안의 docker/welcome-to-docker를 찾아서 Run을 선택하라
3. Optinal settings를 확장하라
4. container name에서 welcome-to-docker를 찾아라
5. Host port에서, 8088을 찾아라.

6. Run을 클릭하라.

Step 2: View containers on Docker Desktop

container를 실행 중이다! Docker Desktop의 Containers tab에서 볼 수 있다. 이 container는 간단한 website를 보여주는 간단한 web server를 실행한다. 더 복잡한 projects를 작동할 때, 다른 container의 다른 parts를 run할 것이다. 예를 들어, frontend, backend, and database에 대한 다른 container이다. 이 연습에서는 오직 간단한 frontend container만 볼 것이다.

Step 3: View the frontend

frontend는 local host의 port 8088로 접근 가능하다. container의 Port(s) 열의 link를 선택하거나, http://localhost:8088을 방문하라.

Step 4: Explore your container

Docker Desktop은 쉽게 보게 해줄 것이고 container의 다른 측면과 상호작용하게 한다. 직접 해보자.
container를 선택하고 container의 고립된 filesystem을 확장하기 위해 Files를 선택하라.

Step 5: Stop your container

welcome-to-docker container는 내가 stop할 때까지 계속해서 실행된다. Docker Desktop에서 container를 멈추기 위해, Containers tab으로 가서 container의 Actions 열의 Stop icon을 선택한다.

Summary

이 연습에서는, 미리 만들어진 image를 실행하고 container를 확장하는 것을 해보았다. 이미 만들어진 image를 실행하는 것 외에도 나만의 application을 container로서 build하고 실행할 수 있다.

How do I run a container?

이 연습에서, 나만의 container를 실행하고 image를 building 하는 기본 step들을 배우게 될 것이다.
이 연습은 sample Node.js application을 사용한다, 하지만 Node.js에 대해 알 필요는 없다.

Step 1: Get the sample application

git clone https://github.com/docker/welcome-to-docker

Step 2: View the Dockerfile in your project folder

container 안에서 code를 실행하기 위해, 가장 근본적으로 필요한 것은 Dockerfiled이다. Dockerfile은 container에 무엇이 들어가는 지 설명한다. sample은 이미 Dockerfile을 포함한다. 내 project에서는, 나의 Dockerfile을 만드는 것이 필요하다. code 또는 text editor에서 Dockerfile을 열 수 있고 그것의 내용물을 확장할 수 있다.

Step 3: Build your first image

container를 실행하기 위해 image가 항상 필요하다. terminal에서, image를 build하기 위해 다음의 command들을 실행해라. /path/to/welcome-to-docker/를 나의 welcome-to-docker directory로의 path로 대체해라

cd /path/to/welcome-to-docker/
docker build -t welcome-to-docker .

이전의 명령에서, -t flag tag는 image의 name이 되고, 이 경우 welcome-to-docker이다. 그리고 .은 Docker가 Dockerfile을 찾을 수 있는 위치를 알려주도록 한다.

image를 building 하는 것인 시간이 좀 걸릴 수 있다. image가 built된 후, Docker Desktop의 Images tab에서 image를 볼 수 있다.

Step 4: Run your container

container로서 image를 실행하기 위해:
1. Docker Desktop에서, Images tab으로 간다.
2. image 옆에 있는 실행을 클릭한다.
3. Optional Settings를 확장한다.
4. Host port에서 8088을 선택한다.

5. Run을 선택한다.

Step 5: View the frontend

실행중인 container에 접근하기 위해 Docker Desktop을 사용할 수 있다. Docker Desktop의 container 옆의 link를 선택하거나 frontend를 보기 위해 http://localhost:8088로 가라.

Summary

이 연습에서, 나만의 iamge를 built하고 container로서 이것을 실행했다. 내 image를 building 하고 running 할 뿐만 아니라, Docker Hub로부터 image를 실행할 수 있다.

Run Docker Hub images

Docker Hub에서 image를 공유하고 저장할 수 있다. Docker Hub는 locally하게 실행할 수 있는 developers에 의해 만들어진 100,000 이상의 Image들을 가지고 있다. Docker Hub image들을 검색할 수 있고 그것들을 Docker Desktop으로부터 직접적으로 실행할 수 있다.

Step 1: Search for the image

Docker Desktop에서 Docker Hub image들을 찾을 수 있다. 이 연습에서 사용할 image를 찾기 위해:
1. Open Docker Desktop and select the search.
2. Specify docker/welcome-to-docker in the search

Step 2: Run the image

docker/welcome-to-docker image를 실행하기 위해:
1. search를 통해 image를 찾은 후, Run 선택
2. Optional Settings 확장
3. Host Port에, 8090 선택


4. Run 선택

Step 3: Explore the container

Container는 사용할 준비가 되었다. container를 보기 위해 Docker Desktop의 Contianers로 가라.

Summary

이 연습에서, Docker Hub 위의 이미지를 찾고 그것을 container로 실행했다. Docker Hub는 application을 build하는 데에 도움이 되도록 사용할 수 있는 100,000개 이상의 Image들을 가지고 있다.

Run multi-container applications

단일 명령으로 도구가 multiple container들을 시작할 수 있다면 얼마나 좋을지 생각해 보라. 그 도구는 Docker Compose이다.

Step 1: Get the sample application

git clone https://github.com/docker/multi-container-app

sample application은 ExpressJS와 Node.js를 사용해 built한 간단한 todo application이다. 이 application은 MongoDB database에 모든 todos를 저장한다.

Step 2: Dig into the Compose file

sample application의 file들을 보자. compose.yaml file을 가지고 있다는 것을 알아채자. 이 file은 Docker에게 어떻게 applicaiton을 실행할 지 말해준다. 내용을 보려면 code 또는 text editor에서 compose.yaml 파일을 열자.

Step 3: Run the application

multi-container applicaiton을 실행하기 위해, terminal을 열고 다음의 commands를 실행하자. /path/to/multi-container-app/을 내 application의 directory path로 대체하자.

cd /path/to/multi-container-app/
docker compose up -d

이전의 명령어에서, -d flag는 Docker Compose가 분리 모드에서 실행되도록 말해준다.

Step 4: View the frontend and add todos

Docker Desktop의 Containers tab에서, 이제 두 개의 container가 실행되는 (the todo-app, and todo-database) application stack을 가지고 있어야만한다.

frontend를 보기 위해:
1. Docker Desktop에서, Containers에서 application stack을 확장
2. Port(s) column에서 port 3000을 선택하고 http://localhost:3000을 연다.

frontend에 몇가지 todo task를 추가하고, new browser tab에서 http://localhost:3000을 연다. task들이 여전히 보인다는 것을 알 수 있다.

Step 5: Develop in your containers

Docker로 개발할 때, 코드를 편집하고 저장할 때 running service를 자동적으로 update하고 미리 봐야할 필요가 있을 수 있다. 이것을 보기 위해 Docker Compose를 사용할 수 있다.

To run Compose Watch and see the real-time changes:
1. terminal을 열고 다음의 명령을 실행하라. /path/to/multi-container-app/를 내 application's directory path로 대체하라.

cd /path/to/multi-container-app/
docker compose watch
  1. text 또는 code editor에서 app/views/todos.ejs를 열고, line 18번의 text를 변경하라
  2. app/views/todos.ejs에 변경을 저장하라.
  3. View your application at http://localhost:3000 to see the changes in real-time.

Step 6: Delete everything and start over

configuration을 Compose file에 저장하고 있는 것은 다른 이점이 있다, 쉽게 모든 것을 삭제하고 시작할 수 있다.

application stack을 삭제하기 위해:
1. Docker Desktop의 Containers tab을 연다
2. application stack 옆에 Delete icon을 선택한다

application stack을 삭제한 후에, application을 재실행하기 위해 Step 3: Run the application steps를 따라라. containers를 삭제하고 다시 삭제할 때, 내가 만든 어떠한 todo도 유지되지 않는다는 것을 알아야 한다.

Summary

이 연습에서, Docker Compose로 multi-container application을 실행했다. 또한 containers에서 개발하는 방법과 모든 데이터와 함께 application stack을 삭제하는 방법을 배웠다.

Persist container data

이 연습은 container 사이에 data를 지속하는 방법을 보여준다. 이 연습에서 같은 개념을 더 잘 이해하기 위해, Run multi-container applications walkthrough를 먼저 완수해라.

Docker는 local filesystem에 있는 content, code, and data를 격리한다. container를 delete할 때, Docker는 container 안에 있는 모든 content를 삭제한다.

때때로, container가 생성하는 data를 유지하고 싶을 수 있다.

Step 1: Get the sample application

git을 가지고 있다면, sample application을 위해 repository를 clone 할 수 있다. 아니면, sample application을 download 받을 수 있다.

git clone https://github.com/docker/multi-container-app

Step 2: Add a volume to persiste data

container를 삭제한 후에 data를 유지하기 위해, volume을 사용한다. Docker Desktop에 의해 자동적으로 관리되는 volume은 local filesystem에서 location이다.
이 project에 volume을 추가하기 위해, code 또는 text editor에서 compose.yaml file을 열고 그 줄의 주석 처리를 제거하라.

todo-database:
    # ...
    volumes:
      - database:/data/db

# ...
volumes:
  database:

todo database 아래에 중첩된 volume element는 Compose에게 database라는 volume을 todo-database service를 위한 container에 있는 /data/db에 mount하라고 지시한다.

top-level volumes element는 Compose file에서 모든 service에서 사용될 수 있는 database라는 volume을 정의하고 구성한다.

Step 3: Run the application

multi-container application을 실행하기 위해, terminal을 열고 다음의 명령들을 실행하라. /path/to/multi-container-app/를 application's directory로 대체하라.

cd /path/to/multi-container-app/
docker compose up -d

Step 4: View the frontend and add todos

Docker Desktop의 Containers tab에서, 이제 두 개의 containers(todo-app, todo-database)가 실행되는 application stack이 있어야만 한다.

frontend를 보고 todos를 추가하기 위해:
1. Docker Desktop에서, Containers 안에 application stack을 확장한다
2. Port(s) column에 port를 3000을 선택하거나 http://localhose:3000을 연다
3. frontend에 몇 가지 todo tasks를 추가한다

Step 5: Delete the application stack and run new containers

이제 아무리 container를 자주 delete하고 recreate 하더라도, Docker Desktop은 your data를 유지하고 database volume을 mounting 함으로써 system에 있는 모든 container에 접근할 수 있다. Docker Desktop은 database volume을 찾고 존재하지 않는다면 생성한다.

application stack을 삭제하기 위해:
1. Docker Desktop의 Containers tab을 연다
2. application stack 옆에 Delete icon을 선택한다


application stack을 삭제한 후에 다시 실행해보면 Docker Desktop이 내가 만든 모든 todos를 유지한다는 것을 알 수 있다.

Summary

이 walkthrough에서, volume을 사용하여 containers 사이에 data를 유지한다. 이것을 고립되고 일시적인 containers 중에 data를 유지하고 공유하는 데에 사용할 수 있다.

Access a local folder form a container

이 walkthrough은 container로부터 local folder로 접근하는 법을 보여준다. 이 walkthrough에서 같은 개념을 더 잘 이해하기 위해, Run multi-container applications walkthrough를 먼저 완수하라.

Docker는 local filesystem에 있는 content, code, and data를 격리한다. 기본적으로, container들은 local filesysem에 있는 directories에 접근할 수 없다.

때때로, local filesystem에서 directory에 접근하고 싶을 수 있다. 이걸 하기 위해, bind moounts를 사용할 수 있다.

Step 1: Get the sample application

git clone https://github.com/docker/bindmount-apps

Step 2: Add a bind mount using Compose

container에서 your system에 있는 data에 접근하기 위해 bind mount를 추가한다. bind mount는 host's filesystem으로부터 container에 directory를 공유할 수 있게 한다.

bind mount를 이 project에 추가하기 위해, code or text editor에서 compose.yaml file을 열고, 아래의 라인에 있는 주석을 지운다

todo-app:
    # ...
    volumes:
      - ./app:/usr/src/app
      - /usr/src/app/node_modules

todo-app service를 위해 volumes element는 Compose에게 lacal folder ./app을 container에 있는 /usr/src/app에 mount 하라고 알려준다. 이 특정한 bind mount는 container에 있는 /usr/src/app directory의 정적인 내용을 덮어 쓰고 development container로 알려진 것을 생성한다. 두 번째 명령, /usr/src/app/node_modules는 container에 설치된 package들을 보존하기 위해 container의 node_modules directory를 bind mount가 재작성하는 것을 에방한다.

Step 3: Run the application

terminal에서, application을 가져오기 위해 다음 command를 실행한다. /path/to/bindmount-apps/를 application의 directory path로 대체하라.

cd /path/to/bindmount-apps/
docker compose up -d

Step 4: Develpop the application

이제, local system에서 application을 개발하는 동안 container의 환경에서 이점을 가져올 수 있다. local system에서 application에 대한 모든 변경은 container에서 반영된다. local directory에서, code or text editor에서 app/views/todos.ejs 열고, Enter your task 문자열을 수정하고, file을 저장하라. 변화를 보려면 localhost:3001을 방문하거나 새로고침 해라.

Summary

이 walkthrough에서, container에서 local folder를 접근하기 위해 bind mount를 추가한다. code를 수정할 때 container를 rebuild할 필요 없이 이걸 사용해 더 빠르게 개발할 수 있다.

Containerize your applicatin

cotainers로 작업할 때, 어떻게 실행되는지 정의하기 위해 compose.yaml과 image를 정의하기 위해 Dockerfile을 생성할 필요가 있다. 이러한 파일을 생성하는 것을 돕기 위해, Docker Desktop은 docker init command를 가지고 있다. project folder 내에서 terminal에 이 command를 실행해라. docker init은 application을 containerize하기 위해 모든 요구되는 file들을 생성한다.

Step 1: Run the command to create Docker assets

containerize하고 싶은 application 하나를 고르고, terminal에서 다음 명령어를 실행하라.
/path/to/your/project/를 내 project를 포함하는 directory 경로로 대체하라

cd /path/to/your/project/
docker init

Step 2: Follow the on-screen prompts

docker init은 중요한 기본값들을 project에 configure하기 위해 몇 가지 질문을 안내한다. answer을 고르고 Enter를 누른다.

Step 3: Try to run your application

모든 질문에 답하고 나면, project를 실행하기 위해 다음 명령어를 터미널에서 실행하라.

cd /path/to/your/project/
docker compose up

Step 4: Update the Docker assets

docker init command는 어려운 작업을 수행하기 위해 최선을 다하지만, 때때로는 몇몇 조립이 필요한 경우가 있다. 이 경우, Dockerfile reference와 Compose file reference를 참조하여 docker init에 의해 생성된 file을 수정하는 방법을 배울 수 있다.

Publish your image

이 walkthrough를 따라하여 Docker Hub에서 image를 어떻게 publish하고 공유하는지 배운다.

Step 1: Get the example image

example image를 얻기 위해:
1. Docker Desktop에서, search bar를 찾는다.
2. search bar에서, docker/welcome-to-docker를 선택한다.
3. Pull을 선택하고 Docker Hub로부터 computer에 image를 pull한다.

Step 2: Sign in to Docker

Docker account를 sign in 또는 생성하기 위해 Docker Desktop의 오른쪽 상단에 있는 Sign in을 선택한다.

Step 3: Rename your image

image를 publish 하기 전에, 그것을 rename할 필요가 있다, 그렇게 해서 Docker Hub가 image가 내 것이라는 것을 알게 해주는 것이다. rename 하기 위해 terminal에서 다음의 command를 실행해라. YOUR-USERNAME을 Docker ID로 대체하라.

docker tag docker/welcome-to-docker YOUR-USERNAME/welcome-to-docker

Step 4: Push your image to Docker Hub

Docker Hub에 image를 push하기 위해:
1. Docker Desktop에서, Image tab으로 간다
2. image의 Actions column에서, Show image actions icon을 선택한다.
3. Push to Hub를 선택한다.


Docker Hub로 가서 repository의 list가 YOUR-USERNAME/welcome-to-docker를 포함하는지 확인하라.

profile
취준 진입

0개의 댓글