Infra & Devops/Docker
[Docker] 도커 이미지 조작 명령어 (search, pull, push, rm, prune ...)
겸둥이xz
2021. 9. 15. 21:26
반응형
- Docker 이미지를 레지스트리에서 다운로드/업로드
- Docker 컨테이너의 시작/정지
- 모든 조작은 Docker 명령으로 수행한다
이미지 검색 (docker search)
docker search [옵션] <검색 키워드>
옵션 | 설명 |
--no-trunc | 결과를 모두 표시 |
--limit | n건의 검색 결과를 표시 |
--filter=stars=n | star의 수(n 이상)를 지정 |
- NAME : 이미지 이름
- DESCRIPTION : 이미지 설명
- STARS : 즐겨찾기 수
- OFFICIAL : 공식 이미지인지?
- AUTOMATED : Dockerfile을 바탕으로 자동 생성된 이미지인지?
Docker Hub에는 사용자가 작성한 임의의 이미지를 공개할 수 있다.
그래서 Docker 이미지의 이름을 고유하게 하기 위해 '사용자명/이미지명' 형식으로 이름을 붙인다.
사용자명을 갖지 않는 이미지도 존재한다. 이러한 것은 Docker의 공식 이미지를 나타낸다.
이미지 다운로드 (docker image pull) / 이미지 목록 보기 (docker image ls)
docker image pull [옵션] 이미지명[:태그명]
- docker pull centos : centos 최신판(latest) 획득 (태그명을 생략하면 latest가 기본값, image 생략 가능)
- docker image pull -a centos : CentOS의 모든 태그 획득
- docker image pull gcr.io.tensorflow/tensorflow : Tensorflow의 URL을 지정하여 이미지 취득
- docker image ls
- --all, -a : 모든 이미지 표시
- --digests : 다이제스트 표시 (이미지를 고유하게 식별하기 위한)
- --no-trunc : 결과를 모두 표시
- --quiet, -q : 이미지 ID만 표시
이미지 상세 정보 확인 (docker image inspect)
docker image inspect [이미지]
- 결과는 JSON 형식으로 표시된다.
- 이미지 ID, 작성일, Docker 버전, CPU 아키텍처, 환경 변수 등을 확인할 수 있다.
특정 값을 취득하고 싶을 때 (--format 옵션)
이미지 태그 설정 (docker image tag)
- 태그에는 식별하기 쉬운 버전명을 붙이는 것이 일반적이다.
- Docker Hub에 작성한 이미지를 등록하려면 다음과 같은 규칙으로 이미지에 사용자명을 붙여야 한다.
docker tag <소스 이미지> <docker hub 사용자명>/이미지명:[태그명]
- 태그를 붙인 이미지(abcde:fghi)와 소스 이미지(ubuntu)의 'IMAGE ID'가 똑같다.
- 이 둘은 실체가 똑같다는 것을 의미한다.
- 즉, 이미지에 별명을 붙일 뿐 이미지 자체를 복사하거나 이름을 바꾼 것이 아니다.
- 리눅스 하드 링크와 비슷한 개념
Docker Hub에 이미지를 등록할 때 규칙
Docker Hub에 로그인 (docker login)
docker login [옵션] [서버]
- Docker 리포지토리에 업로드를 하려면 Docker Hub 가입과 로그인이 필요하다.
- --password, -p : 비밀번호
- --username, -u : 사용자명
이미지 업로드 (docker image push)
docker image push <Docker Hub 사용자>/이미지명[:태그명]
이미지 삭제 (docker rm)
docker image rm [옵션] 이미지명 [이미지명]
- --force, -f : 이미지를 강제로 삭제
- --no-prune : 중간 이미지를 삭제하지 않음
- 이미지명은 REPOSITORY 또는 IMAGE ID를 지정한다.
- Untagged : 하드 링크처럼 같은 링크의 이미지 파일이 있는데, 그 이름만 제거
- Deleted : 하드링크 1인 이미지, 할당 해제
사용하지 않은 이미지 삭제 (docker image prune)
- --all, -a : 사용하지 않은 이미지 모두 삭제
- --force, -f : 강제 삭제
docker logout (Docker Hub 로그아웃 명령어)
<참고자료>
'완벽한 IT 인프라 구축을 위한 Docker 2판'
반응형