728x90
Docker Hub 연동
docker login [옵션] [서버]
Docker Hub에 로그인
- Docker 리포지토리에 이미지 업로드를 위해 Docker Hub 로그인
- 옵션
옵션 | 설명 |
--password, -p | 비밀번호 |
--username, -u | 사용자명 |
- Docker Hub에 로그인
[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: khj708
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
docker image tag <Docker Hub 사용자명>/이미지명[:태그명]
이미지 태그
- 이미지에 대한 태그 설정
- [apline:latest]: 사용할 이미지
- khj708: Docker Hub 사용자명
- goorm: 이미지명
- alpine: 태그명
[root@localhost ~]# docker image tag alpine:latest khj708/goorm:alpine
[root@localhost ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
khj708/goorm alpine e66264b98777 3 weeks ago 5.53MB
alpine latest e66264b98777 3 weeks ago 5.53MB
docker image push <Docker Hub 사용자명>/이미지명[:태그명]
이미지 업로드
- Docker Hub에 이미지 업로드를 위한 명령
- 업로드할 이미지 이름 형식: <Docker Hub 사용자명>/이미지명:태그명
- docker login 명령으로 로그인이 되어야 함
- 이미지 업로드
[root@localhost ~]# docker image push khj708/goorm:alpine
The push refers to repository [docker.io/khj708/goorm]
24302eb7d908: Mounted from library/alpine
alpine: digest: sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253 size: 528
# 이름 형식이 맞지 않는 경우 이미지 업로드에 실패함
[root@localhost ~]# docker image push khj708/alpine:latest
The push refers to repository [docker.io/khj708/alpine]
An image does not exist locally with the tag: khj708/alpine
Dockerfile을 사용한 구성 관리
Dockerfile이란?
인프라 구성을 기술한 파일
- Dockerfile은 Docker 상에서 작동시킬 컨테이너의 구성 정보를 기술하기 위한 파일
- docker build: Dockerfile에 기술된 구성 정보를 바탕으로 Docker 이미지 작성
Dockerfile의 기본 구문
Dockerfile은 텍스트 형식의 파일로 에디터 등을 사용하여 작성
- 확장자 X
- 인프라의 구성 정보 기술
- Dockerfile에서 이미지를 빌드할 때 파일명을 명시적으로 지정해야 함
Dockerfile 명령
- 명령은 대/소문자 상관없지만 관례적으로 대문자로 통일해서 사용
명령 | 설명 |
FROM | 베이스 이미지 지정 |
RUN | 명령 실행 |
CMD | 컨테이너 실행 명령 |
LABEL | 라벨 설정 |
EXPOSE | 포트 익스포트 |
ENV | 환경 변수 |
ADD | 파일/디렉토리 추가 |
COPY | 파일 복사 |
ENTRYPOINT | 컨테이너 실행 명령 |
VOLUME | 볼륨 마운트 |
USER | 사용자 지정 |
WORKDIR | 작업 디렉토리 |
ARG | Dockerfile 안의 변수 |
ONBUILD | 빌드 완료 후 실행되는 명령 |
STOPSIGNAL | 시스템 콜 시그널 설정 |
HEALTHCHECK | 컨테이너의 헬스 체크 |
SHELL | 기본 쉘 설정 |
Dockerfile 작성
Dockerfile에는 'Docker 컨테이너를 어떤 Docker 이미지로부터 생성할지'라는 정보를 반드시 기술해야 함
=> 베이스 이미지
FROM 명령
- FROM [이미지명]
- FROM [이미지명]:[태그명]
- FROM [이미지명]@[다이제스트]
- CentOS를 베이스 이미지로 한 Dockerfile
- 태그명을 생략하면 베이스 이미지의 최신 버전이 적용됨
# 베이스 이미지 설정
FROM centos:centos7
- 다이제스트 확인
- 이미지를 고유하게 특정할 때 사용
- 다이제스트: Docker Hub에 업로드하면 자동으로 부여되는 식별자, 업로드하지 않은 이미지는 없음
[root@localhost ~]# docker image ls --digests khj708/goorm
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
khj708/goorm alpine sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253 e66264b98777 3 weeks ago 5.53MB
# 다이제스트가 없음
[root@localhost ~]# docker image ls --digests khj/os
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
khj/os 1.1 <none> a608bf012429 2 hours ago 231MB
khj/os 1.0 <none> 7c82097ba542 3 hours ago 231MB
728x90
'쿠버네티스 교육 > 강의 내용 정리' 카테고리의 다른 글
220616_3_도커_Dockerfile 명령 RUN / CMD / ENTRYPOINT / ONBUILD (0) | 2022.06.16 |
---|---|
220616_2_도커_Dockerfile 빌드, 멀티 스테이지 빌드 (0) | 2022.06.16 |
220615_4_도커_docker container commit / export, image import / save / load (0) | 2022.06.16 |
220615_3_도커_docker container attach / exec / top / port (0) | 2022.06.16 |
220615_1_도커_docker container network ls / create / connect / rm (0) | 2022.06.15 |