Featured image of post 3. Share the application

3. Share the application

도커 시작하기

만들어진 Docker 이미지는 Docker 레지스트리를 활용하여 공유할 수 있다. 기본 레지스트리는 Docker Hub이다.

Docker ID
Docker ID는 Docker Hub에 접근할 수 있는 권한을 제공한다. Docker Hub는 세계에서 가장 큰 라이브러리, 커뮤니티로 무료로 Docker ID를 만들어 사용할 수 있다.

repo 만들기

Docker Hub에 이미지를 push하려면 먼저 Docker Hub에 Repository를 생성해야 한다.

  1. Docker Hub 회원가입 및 로그인
  2. “Create Repository” 버튼 클릭
  3. repo 이름 설정 및 public 설정 선택
  4. Create 버튼 클릭

이미지 푸시하기

1
2
3
4
5
docker push codemario318/getting-started

# Using default tag: latest
# The push refers to repository [docker.io/codemario318/getting-started]
# An image does not exist locally with the tag: codemario318/getting-started

이미지를 docker push 명령으로 로컬에 존재하는 이미지를 푸시하기 위해서 tag이 필요하다. tag가 존재하지 않는다면 명령을 실행해도 이미지를 찾을 수 없기 때문에 오류가 발생하며, 빌드된 이미지에 다른 이름을 지정해여 태그를 붙여야 한다.

1
docker login -u YOUR-USER-NAME

1
2
3
4
5
docker image ls

# REPOSITORY                     TAG       IMAGE ID       CREATED         SIZE
# codemario318/getting-started   latest    8b52580feb5e   2 days ago      262MB
# getting-started                latest    8b52580feb5e   2 days ago      262MB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker push codemario318/getting-started

# Using default tag: latest
# The push refers to repository [docker.io/codemario318/getting-started]
# 90b7c400bc47: Pushed 
# 0cf2f64e7aa4: Pushed 
# 9e6afbbf5565: Pushed 
# d9f41532a73b: Mounted from library/node 
# 6c0a2592426a: Mounted from library/node 
# 1984e605c08a: Mounted from library/node 
# 26cbea5cba74: Mounted from library/node 
# latest: digest: sha256:c11adf2600f6c2da46bfb1a8f74664a766bb69f11badcd3ed16a2de75a464c1a size: 1788

Docker Hub에서 값을 복사하고 있다면, 이미지 이름 부분에서 tagname을 추가하지 않아도 된다. 태그를 지정하지 않으면 Docker는 latest라는 이름의 태그를 사용한다.

새 인스턴스에서 이미지 실행하기

이미지가 빌드되고 레지스트리에 푸시되었으므로, 컨테이너 이미지를 보유하지 않은 새 인스턴스에서 앱을 실행해도 같은 결과가 나온다.

Play with Docker 사용시 주의사항
Play with Docker는 amd64 플랫폼을 사용하므로, Apple silicon 기반의 ARM 기반 Mac을 사용하는 경우 이미지를 Play with Docker와 호환되도록 다시 빌드하고 새 이미지를 레포지토리에 푸시해야 한다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker build --platform linux/amd64 -t YOUR-USER-NAME/getting-started .

docker image ls

# REPOSITORY                     TAG       IMAGE ID       CREATED              SIZE
# codemario318/getting-started   latest    769987ace2c3   About a minute ago   265MB
# getting-started                latest    8b52580feb5e   2 days ago           262MB
# codemario318/getting-started   <none>    8b52580feb5e   2 days ago           262MB

docker push codemario/getting-started

Play with Docker에서 새 인스턴스를 추가한 후 명령을 실행한다.

정상적으로 동작하는 것을 확인할 수 있다.