728x90
728x90
애저(Azure)를 이용하여 도커(Docker)를 구축하고, 도커 이미지를 다른 사람과 공유하여 사용해보기
들어가며
- 애저(Azure)를 이용하여 구축한 도커(Docker)에서 도커 이미지를 다른 사람과 공유하여 사용해보는 방법에 대해 알아보자.
- 이 글은 이전 글(https://dev-astra.tistory.com/392)에 이어서 진행된다.
실습하기
시나리오 : 도커 이미지를 회사 안의 다른 사람과 공유하여 사용해보기
- 회사 안에 서버를 만든다.
- 이 서버는 Local Docker Registry 역할을 한다. 이 서버에 도커 이미지를 업로드한다.
- 필요한 경우, 팀원들은 이 서버에 접속해서 필요한 파일들을 다운로드 받을 수 있다.
- 클라우드를 이용한다.
- 방법 ①
- 도커 이미지를 Docker Hub 사이트(https://hub.docker.com/)에 업로드 한다.
- 팀원들이 Docker Hub 사이트에서 도커 이미지를 다운로드 받아 사용한다.
- 방법 ②
- 애저(Azure)의 ACR(Azure Container Registry)에 업로드 한다. (AKS(Azure Kubernetes Service))
- 팀원들이 해당 ACR에서 도커 이미지를 다운로드 받아 사용한다.
- 방법 ①
(참고) Local Registry vs. Local Repository
- Local Registry : 로컬 도커를 저장할 수 있는 시스템의 이름
- Local Repository : 로컬 도커를 저장하는 저장 공간의 이름
실습 ① : 회사 안에 서버를 만든다.
- 다음 명령을 실행하여 @registry@ 라는 도커 이미지를 불러와서 @registry@ 라는 컨테이너를 생성한다. 그리고 현재 도커에서 실행 중인 컨테이너와 존재하는 이미지들을 확인한다.
- @-d@ 옵션을 사용하여 데몬 모드로 작동시킨다.
- @-p@ 옵션을 사용하여 포트를 지정한다. 들어오는 포트, 나가는 포트를 @5000@으로 설정한다.
- @--name@ 옵션을 이용하여 컨테이너의 이름을 @registry@로 설정한다.
$ docker run -d -p 5000:5000 --name registry registry
$ docker ps
$ docker images
- 다음과 같이 파이프(@|@)와 @grep@ 명령어를 이용한 명령을 실행하여 특정한 이름의 이미지만 찾을 수 있다.
$ docker images | grep my-image
- 다음 명령을 실행하여 @my-image:v1.0.0@을 @localhost:5000/my-image:v1.0.0@로 연결 시켜준다.
$ docker tag my-image:v1.0.0 localhost:5000/my-image:v1.0.0
- 다음 명령을 실행하여 생성한 @Registry@ 서버에 도커 이미지를 넣어본다. 이 명령을 실행하면 @my-image:v1.0.0@이 @localhost@로 푸시된다.
- 다른 사람들은 이 서버(@Registry@)에서 이미지를 가져와 사용할 수 있다.
- 하지만, 이 방법은 잘 사용되지 않는다. 왜냐하면 서버가 죽으면 그 피해가 크기 때문이다.
$ docker push localhost:5000/my-image:v1.0.0
- 다음 명령들을 실행하여 테스트 해본다.
- @curl@ 명령어는 인터넷 통신을 아주 심플하게 할 수 있는 리눅스/유닉스 명령어이다.
- @GET@ 방식으로 해당 주소에 요청한다.
$ curl -X GET http://localhost:5000/v2/_catalog
$ curl -X GET http://localhost:5000/v2/my-image/tags/list
실습 ② : 클라우드를 이용한다. (Docker Hub)
- 도커 허브(Docker Hub) 사이트에 도커 이미지를 업로드해보자.
- 도커 허브 사이트에 접속한 후, 회원 가입을 하고 로그인을 한다.
- 다음 명령을 실행하여 도커 허브에 접속한다. 도커 허브에서 회원 가입했을 때 사용했던 아이디(@Username@)와 비밀번호(@Password@)를 입력해준다.
$ docker login
- 다음 명령을 실행하여 로컬에 있는 @my-image:v1.0.0@ 이미지를 도커 허브 @devastra@ 계정의 @my-image:v1.0.0@으로 연결시켜준다.
$ docker tag my-image:v1.0.0 devastra/my-image:v1.0.0
- 그리고 다음 명령을 실행하여 로컬의 도커 이미지(@my-image:v1.0.0@)를 도커 허브로 푸시(Push) 해준다.
$ docker push devastra/my-image:v1.0.0
- 다음 명령을 실행하여 현재 도커에 실행 중인 이미지를 확인해본다. @devastra/my-image@(도커 허브에 올린 이미지 파일), @my-image@(로컬에 있는 이미지 파일), @localhost:500/my-image@(로컬 서버에 올린 이미지 파일) 모두 @IMAGE ID@가 동일하다. 즉 모두 똑같은 이미지 파일임을 확인할 수 있다.
$ docker images
- 도커 허브 사이트에 가서 @[새로 고침]@ 버튼을 누르면, 다음과 같이 로컬에서 푸시한 도커 이미지 파일을 확인할 수 있다.
- @[Public View]@ 버튼을 누르면 @Pull@ 명령어를 확인할 수 있다. 이 주소를 이용하여 로컬에서 업로드 한 도커 이미지를 다른 사람과 공유할 수 있다.
실습 ③ : 클라우드를 이용한다. (애저(Azure)의 ACR(Azure Container Registry))
- 아래의 게시글을 참고한다.
참고 사이트
도커 공식 문서
728x90
728x90
'DevOps > Azure' 카테고리의 다른 글
[Azure] Azure Machine Learning Service 사용해보기 : Designer (0) | 2023.05.31 |
---|---|
[Azure] 쿠버네티스(Kubernetes) 실습하기 : AKS(Azure Kubernetes Service) 실습 (0) | 2023.05.30 |
[Azure] 쿠버네티스(Kubernetes) 실습하기 : 간단한 실습 해보기 (0) | 2023.05.29 |
[Azure] 쿠버네티스(Kubernetes) 실습하기 : 미니쿠베(minikube) 설치하기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : Dockerfile을 이용하여 직접 도커 이미지를 만들고 컨테이너 만들어보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 간단한 실습 해보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 도커 설치하기 (0) | 2023.05.27 |
[Azure] 파이썬(Python)을 사용하여 데이터베이스 쿼리 실습하기 (0) | 2023.05.24 |