-
Docker (7)github registry, Personal access token생활코딩 Docker 2022. 2. 3. 17:56
옮
===
===
도커 이미지를 github로 push 하는 방법을 수업
도커의 이미지를 원격저장소에 push 하게 되면 나와 타인에게 도커 이미지를 공유할 수 있습니다.
이런 원격 저장소를 registry라고 합니다. hub.docker.com은 기본 레지스트리입니다. 특별한 조치가 없다면 이곳으로 push 됩니다. 아쉬운 점은 동료들만 접근할 수 있는 저장소는 유료라는 점입니다.
무료로 비공개 레지스트리를 사용할 수 있는 방법이 있습니다(용량의 제한은 있다). github의 packages 기능을 이용하시면 됩니다. 이렇게 하면 소스코드의 저장소와 컨테이너의 저장소를 통합해서 관리할 수도 있습니다. 이 수업은 github를 도커 레지스트리로 사용하는 방법을 알려드리는 수업입니다.
===
github.com의 사용법도 알고 계셔야 합니다. 모르신다면 아래 수업을 먼저 봐주세요.
https://opentutorials.org/module/4636
===
이미지가 있는데 그것을 다른 사람, 또는 다른 공간에 있는 나에게 공유할 때
우리는 push명령을 통해서 그 image를 Registry로 업로드해서 공유할수 있죠
Registry는 여러가지 서비스가 있다
hub.docker.com이 push 명령을 내리면 기본 레지스트리라고 저기로 업로드 된다
하지만 단점, 하나의 비공개 저장소만 무료
대안중에 하나가 Github.com에서 Packages라는 카테고리로 제공하는 Container Registry 서비스
무료로 제한없이 비공개 저장소를 운영할 수 있다
===
Packages라는 메뉴 안에 내가 만든 도커 이미지가 업로드 된다 ▽Choose a registry라고 돼 있는거 보면
Docker가 있고 --이제 안씀
Containers가 있다 --이걸로 Registry가 통합이 됨, Learn More클릭(구글번역)
GitHub의 Packages는 꼭 도커에만 국한된 게 아니라
여러 컴퓨터 언어들이 갖고 있는 패키지 매니저들(npm, mvn...)
이곳을 통해서 소프트웨어를 배포할 수 있는 기능을 갖고 있는 곳이기도 하다
왼쪽에 컨테이너 레지스트리 메뉴얼 클릭 : 컨테이너 레지스트리를 어떻게 사용하는지 나와있다
제일 먼저 할건 인증. 1. 2. 3. 으로 적혀있다. 일단 1.을 강의에서 설명
===
Profile > Settings
> Developer settings > Personal access tokens
Packages로 업로드를 할 때 사용할 인증토큰이란걸 발급받을 수 있다
줄여서 PAT라고 한다
Generate new token 누르면
이 부분과
이 부분은 명령어를 이용해서 패키지를 제어할 수 있는 권한들
Generate Token 버튼 클릭해서 생성
그럼
이렇게 토큰값을 얻을 수가 있다, 이건 화면이 리로드되면 더이상 볼 수 없다
카피해서 어딘가에 저장해둬야해
===
2. 의 설명에 PAT를 환경변수로 등록하래
export CR_PAT=YOUR_TOKEN(우리가 카피한 토큰)
3. 의 설명에
그러고 나서 저 명령을 실행하면 우리의 Registry에 로그인할 수 있다는 말
(아래에 설명한다)
===
docker login : 기본 레지스트리인 hub.docker.com에 로그인하는 것
우리가 하려는건 깃헙에 로그인 하려고 하는 것, 깃허브의 레지스트리 주소인 ghcr.io 를 뒤에다 붙임
docker login ghcr.io -u 내ID -p 내PAT
로그인이 되지만, 안전하지 않아 왜? 명령어 히스토리에 남는다, 다른사람이 로그인을 할 수 있다
===
그래서 2.에서 환경변수에 저장하라는 말
그럼 이게 가능
▽이렇게 해서 보는건 보안 문제가 아니야? 아닌가봐~
===
할 때마다 저걸하면 귀찮으니 ▽이거 배웠지 딴데서~
저 PAT값을
운영체제가 또는 쉘이 실행될 때
자동으로 실행되는 스타트업 스크립트에 넣어놓으시면 편합니다
제트쉘이라는걸 쓰고 있기 때문
vim ~/.zshrc
누르고 제일 끝에다가 추가
쉘이 실행될 때 이 스크립트가 실행되도록 약속돼 있다
source ~/.zshrc
: source 뒤에 있는 코드가 바로 실행이 됨(▽껐다가 안켜도)
그럼 다음부턴
이것만 치면 로그이니 된다
===
새로운 컨테이너를 만들고, 그걸 이미지로 만든다음에 업로드를 해볼 것
docker run -it --name my-utuntu ubuntu
이미지 만들기
docker commit my-ubuntu 레지스트리주소/계정이름/지정할이미지이름:버전 ▽여긴 또 레지스트리주소가 앞에 들어가네
push해보기, 1. 2. 3. 밑에 써있다
===
잘 됐는지 확인하기
Your profile > Packages
24초전
Private다. 누구나 사용하게 하려면 저거 클릭 Package settings로
Change visibility를 Private에서 Public으로
===
이 이미지와 어떤 특정한 깃허브의 깃저장소를 연결할 수도 있다
패키지 페이지(패키지 세팅 전 페이지)에 보면
이게 있다
내 저장소를 선택
연결한 저장소로 가보면 오른쪽 밑에 Packages가 있음
여기서 README.md 를 만듦, 깃허브에서 저장소에 대한 설명을 담는 약속된 이름의 파일, 하단에 파일이 보임,
그리고 저게
패키지 페이지에서 패키지에 대한 설명으로도 나타남
'생활코딩 Docker' 카테고리의 다른 글
Docker (8)docker-compose (0) 2022.02.03 Docker (6)push 도커허브계정이름/이미지의이름:태그 (0) 2022.02.03 Docker (5)Dockerfile & build, tag, -f, RUN&CMD (0) 2022.02.03 Docker (4)commit, -it (0) 2022.02.03 Docker (3)웹서버, 포트, port forwarding, -p, exec, -v, -it (0) 2022.01.26