도커에서 명명된 태그와 최신 태그를 만드는 방법은 무엇입니까?
제가 태그하고 싶은 이미지가 있다고 가정합니다.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 |