다음과 같이 사용자 지정 이미지를 만들 때 이미지 이름을 설정할 수 있습니다.
docker build -t dude/man:v2 . # Will be named dude/man:v2
Dockerfile에서 이미지 이름을 정의하는 방법이 docker build
있습니까? 따라서 명령 에서 언급 할 필요가 없습니까?
답변
Dockerfile 내에서는 이미지 태그 지정이 지원되지 않습니다. 이것은 빌드 명령에서 수행해야합니다. 이 문제를 해결하려면 대상 이미지 이름을 식별하는 docker-compose.yml을 사용하여 빌드를 수행 한 다음을 실행할 수 docker-compose build
있습니다. 샘플 docker-compose.yml은 다음과 같습니다.
version: '2'
services:
man:
build: .
image: dude/man:v2
즉, 스웜 모드 배포에서는 작동하지 않으므로 compose로 빌드를 수행하지 않아야합니다. 질문에 주어진대로 명령을 다시 실행하십시오.
docker build -t dude/man:v2 .
개인적으로 필자는 폴더 (build.sh)에 작은 셸 스크립트를 사용하여 인수를 전달하고 입력을 저장하기 위해 이미지의 이름을 포함시키는 경향이 있습니다. 그리고 프로덕션의 경우 파이프 라인 스크립트 내에 이미지 이름이있는 ci / cd 서버가 빌드를 처리합니다.
답변
yml 파일을 사용하지 않고 사용자 정의 이름으로 이미지를 작성하는 방법 :
docker build -t image_name .
사용자 정의 이름으로 컨테이너를 실행하는 방법 :
docker run -d --name container_name image_name
답변
특정 도커 파일을 참조 해야하는 경우 다른 버전이 있습니다.
version: "3"
services:
nginx:
container_name: nginx
build:
context: ../..
dockerfile: ./docker/nginx/Dockerfile
image: my_nginx:latest
그럼 당신은 그냥 실행
docker-compose build
답변
우분투에서 ‘AS’를 사용 하여이 작업을 수행 할 수 있습니다 : 16.04 AS FooImage