🔗 도커 허브
✏️ 준비하기
📍 로그인
- 도커 허브 사이트에서 로그인하기
- 리눅스에서 도커 로그인하기
- 처음엔 id, pw 를 입력해야 하지만 두번째 부터는 자동 로그인 되는 듯 하다.
- 참고로 이메일 말고 아이디를 입력해야 로그인 가능하다.
Login Succeeded
문구가 나오면 로그인 성공
docker login
📍 업로드할 이미지 준비
🔗 레시피로 node 이미지 만들고 실행하기
- 지금 보유한 3개의 이미지중 첫번째
node_hello_1
를 업로드 할 계획이다.
REPOSITORY TAG IMAGE ID CREATED SIZE
node_hello_1 latest f32862c9b1c0 14 minutes ago 957MB
nginx_custom_1 latest d013c87f1b6b About an hour ago 135MB
nginx latest 9e7e7b26c784 12 days ago 135MB
✏️ 이미지 업로드 양식
- 도커허브에서는 이미지를 업로드 할 때 일정한 양식을 요구한다.
- 이미지 이름을 업로더 아이디와 함께 작성해야한다.
- 즉 이미 세팅되어있는 이미지명으로는 업로드가 불가능하다.
{업로더}/{이미지이름}
choidaekuk/node_hello_1
✏️ 이미지 태그
- 도커에서 한번 만든 이미지의 이름은 병경할 수 없다.
- 그래서 도커에서는
태그
라는 기능을 제공해 이미지 이름을 대체할 수 있도록 해준다.
📍 태그 사용법
- 아래의 명령어로 기존 이미지에 태그를 붙힐 수 있다.
docker tag {이미지명} {태그명}:{버전}
docker tag node_hello_1 choidaekuk/node_hello_1:1
- 태그를 추가하고 이미지를 확인해보면 아래와 같이 새로운 이름의 이미지가 생성된다.
- 하지만 Image id 를 보면 이전 이미지 id 값과 같은 걸 확인할 수 있다.
- 즉 이 두 이미지는 같은 이미지라는 의미이다.
- 또 태그를 보면 생성할 때 적어준 버전이 표시되는걸 볼 수 있다.
[root@localhost ~]
REPOSITORY TAG IMAGE ID CREATED SIZE
choidaekuk/node_hello_1 1 f32862c9b1c0 About an hour ago 957MB
node_hello_1 latest f32862c9b1c0 About an hour ago 957MB
nginx_custom_1 latest d013c87f1b6b 2 hours ago 135MB
nginx latest 9e7e7b26c784 12 days ago 135MB
✏️ 이미지 업로드
- 아래의 명령어를 입력해 로컬의 이미지를 도커 허브에 push 할 수 있다.
- 만약 양식을 지키지 않은 이미지를 push 하면 자동으로 실패 메시지가 출력된다.
- ⚠️
Mounted from ...
- push 중에 이러한 작업 상태를 확인할 수 있는데 이것은 현재 build 하고 있는 docker 이미지 레이어의
...
이미지의 레이어를 참조해 공유가 성공했다는 의미이다.
docker push {이미지 이름}:{버전}
docker push choidaekuk/node_hello_1:1
- push 가 완료되면 도커허브의 프로필에서 push 된 이미지를 확인할 수 있다.
✏️ 도커허브에 Push 한 이미지 pull 하기
📍 기존 이미지 삭제
- push 한 이미지를 pull 하기 위해 기존 이미지를 삭제해야 한다.
docker rm -f node_1
docker rmi -f node_hello_1
docker rmi -f choidaekuk/node_hello_1:1
📍 도커 허브 이미지 pull
- 아래 명령어를 입력해 허브의 이미지를 로컬로 가져올 수 있다.
docker pull {이미지명}:{버전}
docker pull choidaekuk/node_hello_1:1
📍 이미지 실행
- docker run 은 pull 의 명령어를 포함한 명령어기 때문에 pull 을 생략하고 바로 Run 을 해도 작동된다.
docker run \
--name=node_1 \
-p 8080:8080 \
--rm \
-d \
choidaekuk/node_hello_1:1