도커를 한 개의 서버에서 작업을 하고, 본인이 만든 도커 이미지를 다른 서버에서 활용하고 싶을때 도커 허브(Docker hub)에 Push한 후 다른 서버에서 pull을 통해 다른 서버에서 가져갈 수 있을 것이다. Push와 pull에 대한 용어를 잘 모르겠다면 이전 글을 참고하자. 도커 허브에 업로드 하지 않고, 본인이 만든 Dockerfile을 전달해주는 방법도 있고, 이미지를 저장해서 tar file이나 다른 형태로 변환해 전달해주는 방법도 있을 수 있다. 일단 먼저 Push 하는 방법에 대해서 알아보자.
1. Upload Docker Hub
도커 허브에 업로드 하기 위해서는 당연히 도커 허브에 계정이 있어야할 것이다. 도커 계정을 생성한 후 로그인 해보자.
로그인 한 후 Repositories에 접근하고, Create Repository를 생성해보자. 본인은 docker101tutorial이라는 이름으로 레파지토리를 생성했다. 그런다음 우리의 이미지를 해당 레파지토리에 push하면 된다.
그럼 우리는 해당 이름을 통해 다시 도커 허브에서 이미지를 내려받을 수 있게 된다.
$ docker login --username={dockerhub_username}
도커에 먼저 로그인을 하자. 로그인을 하게 되면 패스워드를 물어보는데, 본인 도커 허브 계정의 패스워드를 입력하자,
$ docker tag IMAGE_ID <dockerhub_username>/<repository_name>[:TAG]
만약 태깅을 하고 싶을 경우 위와 같이 태깅을 해줄 수 있다. TAG는 선택사항이므로 굳이 태깅을 안해도 상관없다.
$ docker push <dockerhub_username>/<repository_name>[:TAG]
만약 태깅을 해주었다면 push 뒷단에 TAG를 작성해주어야 된다. 아니면 레파지토리를 찾지 못한다.
본인은 ponben라는 도커 허브 계정으로 docker101tutorial이라는 레파지토리에 testing이라는 태그를 설정하여 push해주었다. 코드는 아래와 같다.
$ docker login --username=ponben
# ac9c1e917df9 -> IMAGE ID
$ docker tag ac9c1e917df9 ponben/docker101tutorial:testing
$ docker push ponben/docker101tutorial:testing
$ docker pull ponben/docker101tutorial:testing
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu with-git ac9c1e917df9 17 hours ago 208MB
ponben/docker101tutorial testing ac9c1e917df9 17 hours ago 208MB
본인이 push한 이미지와 동일한 이미지가 pull 된 것을 확인할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] ifconfig : command not found error (0) | 2022.03.04 |
---|---|
[Docker] VSCode에서 Docker Container 접근하기 (0) | 2022.03.03 |
[Docker] exec, attach, run 비교하기 (0) | 2022.03.03 |
[Docker] 볼륨(Volume)과 바인드 마운트(bind mount)란? (0) | 2022.03.03 |
[Docker] Docker with python (0) | 2022.03.03 |