DockerHub 에 이미지 푸쉬
현재까지 진행한 순서대로 정리하면,
- AWS EC2 생성
- AWS RDS 생성 - PostgreSQL 적용
- AWS S3 생성 및 적용
- AWS S3 정적 이미지와 CSS 파일 적용
- Docker 설치
- Dockerfile 작성 후 이미지 생성
- 생성된 이미지를 DockerHub 에 push
이미지 저장소
도커는 빌드한 이미지를 서버에 배포하기 위한 파일을 도커 레지스트리, 즉, Docker registery 라는 저장소를 사용해 복사합니다. 빌드가 완료된 이미지를 레지스트리에 푸쉬 (push) 하고, 다른 서버에서 (pull) 하여 사용하는 구조로 되어 있습니다.
살짝, git 과 비슷한 느낌입니다.
Docker Hub
도커 허브는, 도커에서 제공하는 이미지 저장소 입니다.
ubuntu, centos, debian 등의 베이스 이미지와, ruby, golang, java, python 등의 공식 이미지가 저장되어 있습니다.
회원 가입 이후에, 대용량 이미지를 무료로 저장할수 있고, 다운로드 트래픽도 무료 입니다.
하지만, 모든 이미지는 공개되어 누구나 접근 가능하고, 비공개로 설정하려면 유료 서비스를 이용해야 합니다.
도커 헙 페이지에 접속하여, 회원가입을 마칩니다.
회원가입을 다 마치면, 로그인을 하여, 사용 준비를 할수 있습니다.
Docker Hub 로그인
계정을 생성해주었으면, 터미널에서 아래 명령어를 실행하여,
도커 허브 계정을 사용할수 있게 로그인 합니다.
1 | docker login |
아래와 같은 메시지가 뜨고, 성공적으로 로그인이 되는걸 확인할수 있습니다.
로그아웃 하기 전까지, 로그인 정보가 유지됩니다.
1 | Configure a credential helper to remove this warning. See |
Docker Hub Push
지난 포스팅에서, Dockerfile 을 이용하여, docker image 를 생성해 주었었습니다.
docker images
명령어를 실행하여, 이미지 목록을 확인해 보면, 지난 시간에 생성해 주었었던,
todolist:latest
이미지가 있는것을 확인 할수 있습니다.
이제 이 이미지를, DockerHub 에 전송해 보도록 하겠습니다.
우선, tag 명령어를 사용하여,
업로드할 이미지의 이름을 지정해 줍니다.
1 | docker tag todolist:latest headfat1218/todolist:latest |
이미지를 지정해주었으면, 이제 push 명령어를 사용하여,
push 를 진행 합니다.
1 | docker push headfat1218/todolist:latest |
명령어를 실행하면, 아래와 같이 진행이 되고
push 가 완료 된 후에, DockerHub 페이지로 가보면,
repository 에 전송 되어 있는것을 확인 할수 있습니다.
이미지를 푸쉬 하는 이유
DockerHub 에 업로드 된 이미지는, 어디서든 pull 받아서 사용할수 있습니다.
아래 명령어를 예로 들어보면, DockerHub repository 저장소, headfat1218/todolist:latest 를 다운 받아와서 사용하겠다는 명령어 입니다.
1 | docker run -d -p 8000:8000 --name todolist headfat1218/todolist:latest |
터미널에서, 위 명령어를 실행한뒤에, 브라우저에 접속해서 127.0.0.1:8000 으로 접속하면,
프로젝트가 잘 작동합니다.
로컬에서는 배포가 잘 이루어 지는것 같아 보이는데… 그 다음 스텝은 무엇이 될까요…? ㅠㅠ