1. 레지스트리, 리포지처리, 이미지 태그 다루기
- 이미지가 저장되는 서버다.
- 도커 허브는 도커 레지스트리 중에 가장 유명한 레지스트리다.
- 이미지의 전체 이름은 4 개의 구성 요소로 이루어진다.
- docker.io/diamol/golang:latest
- docker.io : 이미지가 저장된 레지스트리의 도메인이다. (default 도커 허브)
- diamol : 이미지 작성자의 계정 이름이다. - pull은 누구나 가능하지만 push는 소속원만 가능하다.
- golang : 이미지릐 리포지터리 이름이다. 애플리케이션의 이름이다.
- latest : 이미지 태그다. 애플리케이션의 버전을 나타낸다.
2. 도커 허브에 이미지 푸시하기
- 이미지 푸시에는 두 가지 절차가 필요하다.
- 도커 명령행을 통해 레지스트리에 로그인을 하고, 푸시 권한을 가진 계정명을 포함하는 이미지 참조를 붙여야 한다.
- $dockerId="도커허브계정이름" 명령어로 도커 허브 계정 이름을 환경 변수로 정의한다.
- echo $dockerId 명령어로 저장한 아이디를 확인할 수 있다.
- docker login --username $dockerId 명령어로 도커 허브에 로그인한다.
- (ㅋㅋ) 비밀번호 까먹어서 결국 재설정 했다.
- 기존 이미지에 새로운 이미지 참조를 부여해야한다.
- docker image tag hello_docker $dockerId/hello_docker:v1 명령어를 실행하면 아래와 같은 결과를 얻는다.
- 해당 이미지는 두 개의 이미지 참조를 갖게 된다. 식별자 또한 같다.
- hello_docker 이미지를 참조하는 이미지의 목록을 확인 할 수 있다.
- docker image ls --filter reference=hello_docker --filter reference='*/hello_docker' 명령어를 이용한다.
- push 명령어로 이미지 레이어를 레지스트리로 푸시한다.
- https://hub.docker.com/r/abbiddo/hello_docker/tags 링크로 접속하면 아래와 같이 이미지가 생성된 것을 확인할 수 있다.
- docker image pull abbiddo/hello_docker:v1 명령어로 pull 받고
- docker run abbiddo/hello_docker:v1 명령어로 실행시킬 수 있다.
3. 이미지 태그 효율적으로 사용하기
- 태그를 통해 버전을 구별한다.
- 버전을 나타내는 기본적인 방법은 [major].[minor].[patch]이다.
- patch 자리만 바뀐 버전은 변경 내용이 버그 수정뿐이고 기능은 같다는 의미다.
- minor 자리가 바뀐 버전은 추가된 기능이 있으나 기존 기능은 유지한다는 의미다.
- major 자리가 바뀐 버전은 완전히 다른 기능을 가진다는 의미로 유추할 수 있다.
- 따라서 이전 버전을 원하는 사용자를 위해 major, minor의 이전 버전도 유지를 해야한다.
'Backend > Docker' 카테고리의 다른 글
Te Docker (3) - Gradle 기반의 프로젝트를 Dockerfile로 생성하기 (0) | 2024.01.31 |
---|---|
Te Docker (3) - 실용 도커 기술 (0) | 2024.01.26 |
Te Docker (3) - 멀티 스테이지 Dockerfile 스크립트 (0) | 2024.01.25 |
Te Docker (3) - Dockerfile과 자바 실습 (0) | 2024.01.25 |
Te Docker (2) - 컨테이너 생성 심화 (2) | 2024.01.24 |