[docker] Docker는 저장소 이름을 변경하거나 이미지 이름을 바꾸는 방법은 무엇입니까?

이미지의 저장소 이름을 변경하려고합니다.

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
server              latest              d583c3ac45fd        26 minutes ago      685.5 MB

따라서 이름 server을 다음과 같이 변경하고 싶습니다 myname/server.

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
myname/server       latest              d583c3ac45fd        26 minutes ago      685.5 MB

어떻게해야합니까?



답변

docker image tag server:latest myname/server:latest

또는

docker image tag d583c3ac45fd myname/server:latest

태그는 전체 이미지 이름 ( d583c3ac45fd...)에 대한 사람이 읽을 수있는 별칭입니다 .

따라서 원하는만큼 많은 이미지를 동일한 이미지와 연관시킬 수 있습니다. 이전 이름이 마음에 들지 않으면 다시 태그를 지정한 후 제거 할 수 있습니다.

docker rmi server

그냥 제거합니다 alias/tag. d583c3ac45fd다른 이름이 있기 때문에 실제 이미지는 삭제되지 않습니다.


답변

속기로서 다음을 실행할 수 있습니다.

docker tag d58 myname/server:latest

여기서 d58IMAGE ID의 처음 3자를 나타냅니다.이 경우 필요한 것입니다.

마지막으로 다음과 같이 이전 이미지를 제거 할 수 있습니다.

docker rmi server


답변

최근에 일부 이미지를 Docker 레지스트리 (docker.mycompany.com)에서 Artifactory (docker.artifactory.mycompany.com)로 마이그레이션해야했습니다.

docker pull docker.mycompany.com/something/redis:4.0.10
docker tag docker.mycompany.com/something/redis:4.0.10 docker.artifactory.mycompany.com/something/redis:4.0.10
docker push docker.artifactory.mycompany.com/something/redis:4.0.10


답변

docker tag CURRENT_IMAGE_NAME DESIRED_IMAGE_NAME


답변

허용되는 답변은 단일 이름 변경에 유용하지만 여기에는 동일한 리포지토리가있는 여러 이미지의 이름을 한 번에 바꾸고 이전 이미지를 제거하는 방법이 있습니다.

양식의 오래된 이미지가있는 경우 :

$ docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
old_name/image_name_1    latest              abcdefghijk1        5 minutes ago      1.00GB
old_name/image_name_2    latest              abcdefghijk2        5 minutes ago      1.00GB

그리고 당신은 원합니다 :

new_name/image_name_1
new_name/image_name_2

그럼 당신이 (대신 쓴 사용할 수 있습니다 OLD_REPONAME, NEW_REPONAME그리고 TAG적절한) :

OLD_REPONAME='old_name'
NEW_REPONAME='new_name'
TAG='latest'

# extract image name, e.g. "old_name/image_name_1"
for image in $(docker images | awk '{ if( FNR>1 ) { print $1 } }' | grep $OLD_REPONAME)
do \
  OLD_NAME="${image}:${TAG}" && \
  NEW_NAME="${NEW_REPONAME}${image:${#OLD_REPONAME}:${#image}}:${TAG}" && \
  docker image tag $OLD_NAME $NEW_NAME && \
  docker rmi $image:${TAG}  # omit this line if you want to keep the old image
done


답변

docker run -it –name NEW_NAME 기존 _ 이름

기존 이미지 이름을 변경합니다.


답변