generated from Learning-Is-Vital-In-Development/study-template
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
46ce618
commit b7182c0
Showing
2 changed files
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# 5. 도커 허브 등 레지스트리에 이미지 공유하기 | ||
- **빌드한 이미지**를 다른 사람이 공유하게끔 하는 것을 말한다. | ||
|
||
## 5.1 레지스트리, 리포지터리, 이미지 태그 다루기 | ||
|
||
- **도커 레지스트리** | ||
- 네개의 요소로 표기된다. | ||
- `docker-io/diamol/golang:latest` | ||
- `도메인/계정이름/리포지터리:이미지 태그` | ||
|
||
## 5.2 도커 허브에 직접 빌드한 이미지 푸시하기** | ||
- 이미지 태그 부여하기 | ||
- `docker image tag image-gallery $dockerId/image-gallery:v1` : v1 태그 부여 | ||
- `docker image push $dockerId/image-gallery:v1` : 이미지 푸시 | ||
- 실제 업로드 대상은 이미지 레이더들 | ||
|
||
## 5.3 나만의 도커 레지스트리 운영하기 | ||
- **도커레지스트리** 실행 | ||
- `docker container run -d -p 5000:5000 --restart always diamol/registry` : -p 도메인 localhost:5000 | ||
- 도메인 네임을 별명으로 붙이는 명령 실행 | ||
- registry.local:5000 해당 방향으로 도메인이름을 사용할 수 있게됨 | ||
- HTTP 연결(비보안 연결) 설정도 진행 | ||
- docker info 로 엔진설정 정보 확인 | ||
|
||
## 5.4 이미지 태그를 효율적으로 사용하기 | ||
- [major].[minor].[patch] 형태로 버전 정보 갖추기 | ||
- 완전히다른기능.기능추가.버그 수정 | ||
|
||
## 5.5 공식 이미지에서 골든 이미지로 전환하기 | ||
- 검증된 퍼블리셔, 공식 이미지 제도를 통해서 신뢰할 수 있는 이미지 사용하기 | ||
- 공식 이미지를 기반으로 삼아 인증서나 환경설정 값등 필요한 설정을 추가한다. | ||
## 5.6 연습문제 | ||
- 로컬 레지스트리에 모든 tag push 하기 | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# 6. 도커 볼륨을 이용한 퍼시스턴트 스토리지 | ||
- **무상태 - 유상태** | ||
- 무상태 애플리케이션은 컨테이너 수만 늘리면 스케일이 되고 롤링 배포로 서비스 중단없이 업데이트 배포 할 수 있다. | ||
- 퍼시스턴시를 위해 디스크를 사용해야 되고 스토리지 관련 복잡한 상황이 생긴다. -> 도커 볼륨과 마운트, 컨테이너 파일 시스템 | ||
|
||
## 6.1 컨테이너 속 데이터가 사라지는 이유 | ||
- 모든 컨테이너는 독립된 파일 시스템을 가진다. | ||
- 파일 시스템은 독립적이고 컨테이너가 삭제 될 때(컨테이너와 같은 생애주기) 삭제된다. | ||
- 단일 디스크 dev/sda1, C:\ 를 가지게된다. | ||
- 이미지 레이어와컨테이너의 기록 가능 레이로 구성 된다. | ||
- 이미지 레이어는 공유하고 기록 가능 레이너느 컨테이너마다 다르다. | ||
- 기록 가능 레이어는 컨테이너와 같은 생애주기를 갖는다. | ||
- 기록가능레이어 (파일을 쓰기 가능 레이어로 복사해와서 파일을 수정) [copy-on-write] | ||
- 이미지레이어 (읽기전용) | ||
- 이 사라지는 것을 막기위해 볼륨과 마운트를 사용한다. | ||
|
||
## 6.2 도커 볼륨을 사용하는 컨테이너 실행하기 | ||
- **볼륨 사용** 스텝 | ||
- 1. 볼륨을 생성 -> 2. 컨테이너에 연결 -> 3. 컨테이너 파일 시스템의 한 디렉터리로 설정됨 -> 4. 다른 컨테이너에서도 연결 가능 | ||
- **볼륨 생성** 방법 | ||
- 1. 직접 생성 | ||
- 2. VOLUME 인스트럭션을 사용 -> 자동으로 생성해서 컨테이너에 연결 (별개의 생애주기를 가짐) | ||
- **볼륨** 팁 | ||
- 컨테이너간 파일 공유 보다는 업데이트 간 상태 보존 용도 | ||
- 이미지에 정의하기 보단 명시적으로 관리 | ||
- `docker container --volume` : 볼륨 사용 기능 이미 있으면 override | ||
|
||
## 6.3 파일 시스템 마운트를 사용하는 컨테이너 실행하기 | ||
- 볼륨의 장점은 컨테이너와 스토리지의 생애주기 분리 | ||
- 바인드 마운트는 호스트의 파일 시스템의 디렉터리를 컨테이너 파일시스템의 디렉터리로 마늗ㄴ다. | ||
- 고신뢰성 스토리지를 지정해서 사용가능하다. | ||
- 분산 스토리지를 사용하게 되면 네트워크 오버헤드를 생각해야된다. | ||
|
||
## 6.4 파일 시스템 마운트의 한계점 | ||
- 첫번째 시나리오: 컨테이너의 마운트 대상이 이미 존재할 때 overwrite 된다. | ||
- 두번째 시나리오: 호스트 컴퓨터의 파일이 이미 존재할 때, 합쳐져서 나타난다. | ||
- 세번째 시나리오: 분산 파일 스토리지를 마운트하면 안되는 기능도 있다 (hard link) | ||
|
||
## 6.5 컨테이너의 파일 시스템은 어떻게 만들어지는가? | ||
- **파일 시스템** | ||
- 기록 가능 레이어: 네트워크를 통해 저장해야되는 데이터 캐싱 용도 | ||
- 로컬 바인드 마운트: 호스트 컴퓨터와 컨테이너 간 데이터 공유 사용 | ||
- 분산 바인트 마운트: 네트워크 스토리지 사용 | ||
- 볼륨 마운트: 영구적 사용을 위한 데이터 유지 | ||
- 이미지 레이어: 초기 파일 시스템 구성 | ||
## 6.6 연습 문제 |