Docker Image Repository
이번 포스팅에서는 Public 망에 있는 Docker-Hub(https://hub.docker.com/) 에 개인용 컨테이너(Container) 이미지(Image) 레지스트리 (Registry)를 만들어 보도록 하겠습니다.
이번 포스팅은 다음의 지식이나 환경이 필요합니다.
- Windows, Linux 혹은 Mac 환경에 설치된 Docker Engine
- Docker에 대한 기본 개념
- Docker 기본 명령어
Hands on은 다음과 같은 순서로 진행 가능합니다.
1. hub.docker.com에 계정 생성(혹은 로그인)
- 웹 브라우저를 통해 http://hub.docker.com 에 접속
- sign in 메뉴를 찾아 클릭
- 계정 생성(Google ID 등과 연동 가능)
- 로그인
2. Registry 생성
- 상단의 'Repositories' 메뉴 선택
- 'Create Repository' 버튼 클릭
- Hands on 실습을 위해 레파지토리(Repository)명은 'hello'로 입력
- Visibility 옵션은 'public'으로 선택
- 모든 입력/선택이 완료되면 'Create' 버튼 클릭
- 레파지토리(Repository) 생성 완료
- 아래 이미지 캡처에 표시한 'docker push sharplee7(사용자계정)/hello:tagname' 이 docker push 명령임
3. hello.js 어플리케이션 작성
notepad 혹은 vi등을 열어 아래의 hello.js 파일을 작성한 후 hello.js란 이름으로 저장합니다.
var http = require('http'); var handleRequest = function(request, response) { console.log('Received request for URL: ' + request.url); response.writeHead(200); response.end('Hello World!'); }; var www = http.createServer(handleRequest); www.listen(8080); |
4. Docker Image 생성을 위한 Dockerfile 작성 및 생성
nodepad 혹은 vi등을 열어 아래의 Dockerfile을 작성 후 Dockerfile이란 이름으로 저장합니다.
FROM node:6.14.2 EXPOSE 8080 COPY hello.js . CMD node hello.js > log.out |
파일을 저장 했으면 커맨드(Command) 창 (혹은 shell)을 실행시켜 아래의 명령어를 수행해 sharplee7/hello:1.0 이라는 이름의 도커(Docker) 이미지(Image)를 생성하도록 합니다.
※여기서 사용한 sharplee7은 docker-hub의 사용자 계정입니다.
docker build -t sharplee7/hello:1.0 . |
5. 콘솔에서 Docker-Hub 로그인
- 콘솔상에서 docker login 령어를 입력
- 사용자 id 입력
- 패스워드 입력
6. Docke-Hub에 이미지(Image) push
앞서 docker-hub에 레파지토리 생성시 표시되었던 명령어를 참조해서 아래의 명령어를 입력 합니다.
docker push sharplee7/hello:1.0
7. docker-hub로 부터 sharplee7/hello:1.0 이미지 가져오기(pull)
docker images를 통해 방금 생성한 이미지가 Local에 있는지 확인 한 후 있다면 docker rmi <image id>를 입력 해 삭제를 합니다.
- docker images <사용자계정>/hello:1.0
- docker rmi <docker image id>
이제 docker를 pull 해 오도록 합니다. 여기서 pull을 하면 docker-hub로부터 이미지를 가져옵니다.
다시 이미지가 있는지 확인해 보도록 합니다.
이미지를 docker-hub에서 받은 것을 확인 하실 수 있습니다.
지금까지 Hands on 한 시스템 이미지는 아래와 같습니다.
이번 포스팅은 여기까지 입니다.
감사합니다.