docer search
명령어를 통해 도커 허브 및 개인 사용자들이 공개한 관련 이미지를 살펴볼 수 있다.docer build
)docker pull
)docker pull
: 도커 허브 레지스트리에서 로컬로 이미지 내려받기docker push
: 로컬의 이미지를 도커 허브 레지스트리에 업로드하기docker login
: 업로드 하기 전 도크 허브 계정으로 로그인 수행하기docker logout
: 도커 허브에서 로그아웃하기도커 이미지 다운로드는 기본적으로 도커 허브 레지스트리로 자동 지정되지만 특정 레지스트리를 수동 지정할 수도 있다.
docker [image] pull [OPTIONS] name[:TAG | @IMAGE_DIGEST]
:태그
를 포함하지 않으면 자동으로 최신 버전(latest
)로 지정된다. # 명시적으로 최신 버전 지정
$ docker pull debian:latest
# 이미지 식별 정보인 다이제스트 지정
$ docker pull debian:sha256:2857983344284...94c992
# 도커 허브 레지스트리 명시적 지정
$ docker pull library/debian:latest
$ docker pull docker.io/library/debian:latest
$ docker pull index.docker.io/library/debian:latest
# 외부 레즈스트리 주소를 이용하는 방법, URL은 http://를 붙이지 않는다.
$ docker pull gcr.io/google-samples/hello-app:1.0
docker image ls
또는 docker images
를 통해 조회할 수 있다.도커 오브젝트(이미지, 컨테이너) 등의 세부 정보 조회를 위해 docker image inspect
, docker image history
, 물리적으로 호스트 OS에 저장된 영역을 이용할 수 있다.
docker inspect
docker image inspect [OPTIONS] IMAGE [IMAGE..]
—format
옵션을 통해 원하는 정보만 출력할 수 있다. docker image inspect --format="" httpd
docker history
$ docker image history [OPTIONS] IMAGE
IMAGE CREATED CREATED BY SIZE COMMENT
c7c54c29e20d 12 days ago /bin/sh -c #(nop) CMD ["mysqld"] 0B
<missing> 12 days ago /bin/sh -c #(nop) EXPOSE 3306 33060 0B
<missing> 12 days ago /bin/sh -c #(nop) ENTRYPOINT ["docker-entry… 0B
<missing> 12 days ago /bin/sh -c ln -s usr/local/bin/docker-entryp… 34B
<missing> 12 days ago /bin/sh -c #(nop) COPY file:e9c22353a1133b89… 14.2kB
<missing> 12 days ago /bin/sh -c #(nop) VOLUME [/var/lib/mysql] 0B
<missing> 12 days ago /bin/sh -c set -eux; microdnf install -y "m… 230MB
<missing> 12 days ago /bin/sh -c #(nop) ENV MYSQL_SHELL_VERSION=8… 0B
<missing> 12 days ago /bin/sh -c set -eu; . /etc/os-release; { … 215B
<missing> 12 days ago /bin/sh -c set -eux; microdnf install -y "m… 177MB
<missing> 12 days ago /bin/sh -c set -eu; . /etc/os-release; { … 225B
<missing> 12 days ago /bin/sh -c #(nop) ENV MYSQL_VERSION=8.0.32-… 0B
<missing> 12 days ago /bin/sh -c #(nop) ENV MYSQL_MAJOR=8.0 0B
<missing> 12 days ago /bin/sh -c set -eux; key='859BE8D7C586F5384… 3.17kB
<missing> 12 days ago /bin/sh -c set -eux; microdnf install -y … 15.4MB
<missing> 12 days ago /bin/sh -c set -eux; arch="$(uname -m)"; c… 2.4MB
<missing> 12 days ago /bin/sh -c #(nop) ENV GOSU_VERSION=1.16 0B
<missing> 12 days ago /bin/sh -c set -eux; groupadd --system --gi… 2.77kB
<missing> 12 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 12 days ago /bin/sh -c #(nop) ADD file:18f4bd510f88f32e5… 119MB
도커 태그(tag)는 원본 이미지에 참조 이미지 이름을 붙이는 명령이다.
docker tag 원본 이미지[:태그] 참조 이미지[:태그]
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest b2c2ab6dcf2e 13 days ago 166MB
# 이미지 ID에 버전 태그 붙여 지정
$ docker image tag b2c2ab6dcf2e debian-httpd:1.0
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest b2c2ab6dcf2e 13 days ago 166MB
debian-httpd 1.0. b2c2ab6dcf2e 13 days ago 166MB
# 이미지 ID 대신 이미지 이름을 쓸 수도 있다.
$ docker image tag httpd:latest debian-httpd:2.0
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest b2c2ab6dcf2e 13 days ago 166MB
debian-httpd 1.0 b2c2ab6dcf2e 13 days ago 166MB
debian-httpd 2.0 b2c2ab6dcf2e 13 days ago 166MB
# 도커 허브 같은 레지스트리에 업로드하는 경우 저장소명과 함께 태그 지정
$ docker image tag http:latest [본인 아이디]httpd:3.0
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest b2c2ab6dcf2e 13 days ago 166MB
debian-httpd 1.0 b2c2ab6dcf2e 13 days ago 166MB
debian-httpd 2.0 b2c2ab6dcf2e 13 days ago 166MB
ldk/httpd 3.0 b2c2ab6dcf2e 13 days ago 166MB
참조 값으로 도커 허브에 push
하고 pull
받을 수 있다.
$ docker login
Username: ...
Password: ...
...
Login succeeded
$ docker push ldk/httpd:3.0
...
...
$ docker pull ldk/httpd:3.0
...
...
도커에서 로그인을 할 때 엑세스 토큰을 이용할 수도 있다.
$ vi .access_token
# 엑세스 토큰 입력
# 별도 입력 없이 로그인 가능
$ cat .access_token | docker login --username [본인 ID] --password-stdin
...
Login Succeeded
docker image save
명령을 통해 원본 이미지 레이어 구조까지 복제한 tar
파일로 저장할 수 있다.
docker image save
로 백업하거나 불필요한 이미지는 삭제하는 것이 좋다.docker image rm [옵션] {이미지이름[:태그] | 이미지 ID}