도커에서 명명된 태그와 최신 태그를 만드는 방법은 무엇입니까?
제가 태그하고 싶은 이미지가 있다고 가정합니다.0.10.24
(내 경우에는 Node.js 0.10.24가 포함된 이미지입니다.)도커 파일을 사용하여 이미지를 구축하고 실행했습니다.docker build
그리고 그것을 사용하여 태그를 제공함으로써.-t
매개 변수
저는 언젠가 그 이미지의 추가 버전을 갖게 될 것으로 예상하기 때문에 다른 태그 이름을 사용하여 프로세스를 다시 실행할 것입니다.
지금까지, 좋아요.이것은 훌륭하고 잘 작동하며 모든 것이 잘 됩니다.
하지만 여기서 문제가 시작됩니다. 또한 항상 최신 이미지 태그가 부착된 광고를 원합니다.latest
또한.그래서 저는 똑같은 이미지에 두 개의 이름을 붙여야 한다고 생각합니다.
이거 어떻게 하는 거지?다시 실행해야 합니까?docker build
다시 정확히 같은 버전으로, 하지만 이번에는 다른 태그를 사용하세요, 더 좋은 옵션이 있나요?
이미지를 빌드할 때 다음 태그를 여러 개 사용할 수 있습니다.
$ docker build -t whenry/fedora-jboss:latest -t whenry/fedora-jboss:v2.1 .
참조: https://docs.docker.com/engine/reference/commandline/build/ #tag-image-t
이미지를 얻으면 다음을 사용할 수 있습니다.
$ docker tag <image> <newName>/<repoName>:<tagName>
삐걱거림/노드로 이미지 구축 및 태그 지정:최신
$ ID=$(docker build -q -t creack/node .)
새 태그 추가
$ docker tag $ID creack/node:0.10.24
이를 사용하여 빌드에서 -t 부분을 건너뛸 수 있습니다.
$ docker tag $ID creack/node:latest
여기 나의 bash 스크립트가 있습니다.
docker build -t ${IMAGE}:${VERSION} .
docker tag ${IMAGE}:${VERSION} ${IMAGE}:latest
그런 다음 동일한 버전을 사용하여 재구성한 경우 태그가 지정되지 않은 이미지를 제거할 수 있습니다.
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
또는
docker rmi $(docker images | grep "^<none>" | tr -s " " | cut -d' ' -f3 | tr '\n' ' ')
또는
정리 명령:
Docker 1.13은 정리 명령을 도입했습니다.사용하지 않는 모든 용기, 이미지, 네트워크 및 볼륨을 제거하는 방법
docker system prune
또는 개별적으로:
docker container prune
docker image prune
docker network prune
docker volume prune
ID=$(docker build -t creack/node .)
그 이후로 나는 작동하지 않습니다.ID
빌드의 출력을 포함합니다.
그래서 저는 다음과 같은 작은 BASH 스크립트를 사용하고 있습니다.
#!/bin/bash
set -o pipefail
IMAGE=...your image name...
VERSION=...the version...
docker build -t ${IMAGE}:${VERSION} . | tee build.log || exit 1
ID=$(tail -1 build.log | awk '{print $3;}')
docker tag $ID ${IMAGE}:latest
docker images | grep ${IMAGE}
docker run --rm ${IMAGE}:latest /opt/java7/bin/java -version
그냥 아이디 grep from.docker images
:
docker build -t creack/node:latest .
ID="$(docker images | grep 'creak/node' | head -n 1 | awk '{print $3}')"
docker tag "$ID" creack/node:0.10.24
docker tag "$ID" creack/node:latest
임시 파일이 필요하지 않으며 전체 빌드 출력을 제공합니다.여전히 다음으로 리디렉션할 수 있습니다./dev/null
또는 로그 파일.
빌드 명령 중에 도커 파일에 태그를 지정하는 방법
docker build -t image_name:tag_name .
그렇지 않으면 그것은 줄 것입니다.latest
자동으로 도커 이미지에 태그를 지정합니다.
아론의 대답의 변형.임시 파일 없이 sed 사용
#!/bin/bash
VERSION=1.0.0
IMAGE=company/image
ID=$(docker build -t ${IMAGE} . | tail -1 | sed 's/.*Successfully built \(.*\)$/\1/')
docker tag ${ID} ${IMAGE}:${VERSION}
docker tag -f ${ID} ${IMAGE}:latest
혜 아주 쉬워요 아래 단계만 따르면 돼요 -
도커에서 이미지를 만들고 태그를 지정하려면 다음 명령을 사용합니다.
먼저 아래 명령을 실행하여 도커 ID를 꺼냅니다.
docker ps
복사 -> 이름
docker build -t dockerId/Name of your image you want:latest .
나를 위해 사용합니다.
docker build -t condescending_greider/newdoc:latest .
시간 내주셔서 감사합니다.
언급URL : https://stackoverflow.com/questions/22080706/how-to-create-named-and-latest-tag-in-docker
'programing' 카테고리의 다른 글
백업 증분 백업 대 복제 (0) | 2023.09.03 |
---|---|
CSS: 컨테이너의 크기를 변경하지 않고 일부 텍스트를 굵게 표시 (0) | 2023.09.03 |
Spring의 "자동 프록시 자격 없음" 원인 추적 (0) | 2023.09.03 |
MySQL 5의 다중 열 기본 키 (0) | 2023.09.03 |
큰 MySQL 제품 내역 테이블 파티셔닝? (0) | 2023.09.03 |