본문 바로가기

IT/서버

Docker Push (DockerHub, GitHub)

반응형

 

도커 이미지를 다른 사람과 공유하기 위해서 push를 통해 저장소인 docker hub 또는 git hub에 올릴 수 있다.

 

 

Docker 공유하기 (Push)

 

1) 도커 허브에 로그인 또는 회원가입을 한 뒤 Repository를 생성한다.

2) 예시로 python3으로 만들면 아래 화면처럼 도커를 Push 할 예시 화면을 확인 할 수 있다.

3) 그럼 예시로 ubuntu OS에 Python3를 설치한 이미지를 도커 허브에 Push해보자 

#ubuntu 이미지를 다운받는다.
docker pull ubuntu
#ubuntu 이미지를 실행 후 바로 명령어를 입력할 수 있게 옵션 -it으로 실행 (실행 이미지 이름은 my-python)
docker run -it --name my-python ubuntu
#apt를 통해 python3을 설치한다.
apt -update && apt install python3 -y
#명령어 화면 out
exit
#docker commit을 통해 python 을 설치한 my-python 실행 컨테이너를 이미지화 한다.
#my-python 컨테이너를 didwlsdbs/python3 이름으로 이미지로 만든다. (태그 : 1.0)
docker commit my-python didwlsdbs/python3:1.0
#이미지가 생성되었는지 확인 
docker images
#docker 허브로 로그인한다
dockert login
#화면에 도커허브의 계정을 입력하는 화면이 나오고 계정을 입력하면 된다. 
#docker 허브 화면에 표시되었던 push 명령어를 참고해서 push한다. 
docker push didwlsdbs/python3:1.0
#docker 허브 사이트에 해당 이미지가 올라감을 확인할 수 있고, 세팅했던 이미지를 삭제후 도커허브의 이미지를 다운받아보자.
docker rmi --force didwlsdbs/python3:1.0
docker pull didwlsdbs/python3:1.0

도커Hub의 단점은 오지 private Repository만 무료로 제공해줌으로 GitHub를 활용해보자.

 

GitHub의 패키지로 이동하면 아래 화면처럼 Docker와 Container가 존재하는데 docker는 이제 지원하지 않음으로 Container를 선택해야 된다.

Learn More 버튼을 통해 들어가면 기본적인 가이드 문서를 확인 할 수 있다. 

그 중 Container Repository 마이그레이션 가이드를 확인해보자.

그 전에 먼저 Git Hub의 패키지로 이미지를 업로드할 때 필요한 인증 토큰을 생성해야된다. 

settings > developer settings > personal access tokens 메뉴에서 인증 토큰을 생성할 수 있다.

 

토큰 이름과 권한을 선택한 뒤 generate token 버튼을 누르면 토큰이 생성된다. 

(토큰 생성 후 새로고침을 누르면... 생성한 토큰이 삭제되니 꼭 생성한 뒤 복사해서 저장해두자!!)

 

docker login은 일반 도커 허브에 로그인하는 명령어이고 docker login ghcr.io는 git hub에 로그인하기 위한 명령어이다.

그러므로 git hub에 로그인하려면 docker login ghcr.io를 입력해야 된다.

 

[Git Hub 로그인]

docker login ghcr.io -u (아이디) -p (생성한 토큰)

위 명령어로 로그인 할 경우 다른사람이 history를 통해 로그인 토큰 정보를 확인할 수 있어서 권장하지 않는 방법이다. 

 

history로 확인 할 수 없게 환경변수로 토큰 정보를 저장한 뒤 사용하는 걸 권장한다. 

 

[환경변수로 토큰 정보 저장하기 후 Git Hub  로그인]

export CR_TOKEN=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

echo $CR_TOKE | docker login ghcr.io -u didwlsdbs --password-stdin

 

 

GitHub로 로그인 후 동일하게 push 로 이미지를 보내면 아래와 같이 정상적으로 업로드 된걸 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

 

참고 동영상

https://www.youtube.com/watch?v=cqlY1Hc70H0

반응형

'IT > 서버' 카테고리의 다른 글

MSA 개념  (0) 2023.01.29
Docker Compose를 이용하기  (0) 2022.02.14
Docker Commit & Build  (0) 2022.02.05
Docker 기본 개념  (0) 2022.02.05
[AWS] EC2 Linux에 Docker 설치하기  (1) 2021.12.19