[docker] Dockerfile에서 이미지 이름을 설정하는 방법은 무엇입니까?

다음과 같이 사용자 지정 이미지를 만들 때 이미지 이름을 설정할 수 있습니다.

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


답변