도커 합성으로 빌드된 이미지의 이름을 정의하려면 어떻게 합니까?
개발 환경을 만들기 위해 도커 컴포지를 사용하고 있습니다.특정 이미지를 빌드하고 싶은데 해당 이미지의 이름을 설정하는 방법을 모르겠습니다.
wildfly:
build: /path/to/dir/Dockerfile
container_name: wildfly_server
ports:
- 9990:9990
- 80:8080
environment:
- MYSQL_HOST=mysql_server
- MONGO_HOST=mongo_server
- ELASTIC_HOST=elasticsearch_server
volumes:
- /Volumes/CaseSensitive/development/wildfly/deployments/:/opt/jboss/wildfly/standalone/deployments/
links:
- mysql:mysql_server
- mongo:mongo_server
- elasticsearch:elasticsearch_server
가 실할때를 실행할 때.docker-compose
모든 것이 괜찮지만, 저는 새로운 이미지의 이름을 무작위로 얻습니다.빌드 이미지에 이름을 설정할 수 있습니까?
도커 합성 버전 2 파일 형식의 경우 한 서비스에 대한 이미지를 빌드하고 태그를 지정한 다음 다른 서비스에 동일한 빌드 이미지를 사용할 수 있습니다.
저의 경우, 두 노드 모두 동일한 이미지를 사용해야 하지만 다르게 실행되도록 구성된 2개의 노드로 탄력적인 검색 클러스터를 설정하려고 합니다.또한 나는 나만의 도커 파일로 나만의 맞춤형 탄력 검색 이미지를 만들고 싶습니다.그래서 제가 한 일은 이렇습니다.docker-compose.yml
):
version: '2'
services:
es-master:
build: ./elasticsearch
image: porter/elasticsearch
ports:
- "9200:9200"
container_name: es_master
es-node:
image: porter/elasticsearch
depends_on:
- es-master
ports:
- "9200"
command: elasticsearch --discovery.zen.ping.unicast.hosts=es_master
첫 번째 서비스 정의에서 다음을 사용하는 것을 볼 수 있습니다.build
의 ./elasticsearch
이미지에 이름과 태그를 지정합니다.image
선택.
그런 다음 서비스 정의에서 이 빌드된 이미지를 다음과 같이 참조합니다.image
.depends_on
먼저 다른 컨테이너가 제조되고 실행되는지 확인합니다.
새 파일 형식을 사용하는 경우 빌드 키와 이미지 키를 모두 지정할 수 있습니다.
docker-compose build
이미지를 빌드하고 사용자가 지정한 이름으로 태그를 지정합니다.docker-compose pull
잡아당기려고 할 겁니다
그래서 너의docker-compose.yml
것입니다.
version: '2'
services:
wildfly:
build: /path/to/dir/Dockerfile
image: wildfly_server
ports:
- 9990:9990
- 80:8080
도커 합성 업데이트 방법
sudo pip install -U docker-compose==1.6.0
옵션 1: 기본 이미지 이름 암시
도커 합성에 의해 생성된 이미지의 이름은 기본적으로 폴더 이름에 따라 다르지만 다음을 사용하여 재정의할 수 있습니다.--project-name
인수:
$ docker-compose --project-name foo build bar
$ docker images foo_bar
옵션 2: 이미지 이름 지정
도커 합성 1.6.0이 나오면 다음과 같이 지정할 수 있습니다.build:
그리고.image:
이미지 이름을 명시적으로 지정합니다(arulraj.net 의 답변 참조).
옵션 3: 컨테이너에서 이미지 생성
세 번째는 컨테이너에서 이미지를 생성하는 것입니다.
$ docker-compose up -d bar
$ docker commit $(docker-compose ps -q bar) foo_bar
$ docker-compose rm -f bar
컴포지의9에 따라 3.9버전따에다사수있용다습니할음을라의트지▁use▁according,다있▁you를 사용할 수 있습니다.image: myapp:tag
이름과 태그를 지정합니다.
version: "3.9"
services:
webapp:
build:
context: .
dockerfile: Dockerfile
image: webapp:tag
참조: https://docs.docker.com/compose/compose-file/compose-file-v3/
사용 사례에 따라 이미 생성된 이미지를 사용하고 이름을 지정할 수 있습니다.docker-compose
.
CI 서버가 Docker라는 이름의 이미지를 구축하는 프로덕션 사용 사례가 있습니다.docker build -t <specific_image_name> .
. 명명된 이미지가 지정되면,docker-compose
항상 특정 이미지를 기반으로 합니다.이를 통해 다음과 같은 몇 가지 가능성이 있습니다.
1 - 어디를 실행하든 고객의 요구 사항을 충족할 수 있습니다.docker-compose
에서 항상 해당 특정 이미지의 최신 버전을 사용합니다.
2 - 이름이 지정된 이미지를 여러 개 지정할 수 있습니다.docker-compose
파일을 저장하고 이전 빌드 단계를 통해 자동으로 연결되도록 합니다.
이미지가 이미 빌드된 경우 이미지 이름을 다음과 같이 지정할 수 있습니다.docker-compose
.제거한다.build
및 지정image:
wildfly:
image: my_custom_wildfly_image
container_name: wildfly_server
ports:
- 9990:9990
- 80:8080
environment:
- MYSQL_HOST=mysql_server
- MONGO_HOST=mongo_server
- ELASTIC_HOST=elasticsearch_server
volumes:
- /Volumes/CaseSensitive/development/wildfly/deployments/:/opt/jboss/wildfly/standalone/deployments/
links:
- mysql:mysql_server
- mongo:mongo_server
- elasticsearch:elasticsearch_server
이미지를 빌드한 후 다음을 수행합니다.
docker tag <image id> mynewtag:version
그 후에 당신은 당신의 이미지가 더 이상 이름이 없는 것을 보게 될 것입니다.<none>
갈 때는docker images
.
이를 위해 도커 업 시 빌드 & 컨테이너 이름으로 이미지 이름을 사용자 정의할 수 있습니다. 도커-docker.yml 파일에서 아래와 같이 언급해야 합니다.사용자 지정 이름으로 이미지와 컨테이너를 만듭니다.
version: '3'
services:
frontend_dev:
stdin_open: true
environment:
- CHOKIDAR_USEPOLLING=true
build:
context: .
dockerfile: Dockerfile.dev
image: "mycustomname/sample:v1"
container_name: mycustomname_sample_v1
ports:
- '3000:3000'
volumes:
- /app/node_modules
- .:/app
sudo docker-docker -p <project_name> 빌드
프로젝트 이름 할당
참고: 명령에서 'build' 앞에 '-p' 옵션이 나옵니다.
참조: https://docs.docker.com/compose/reference/
제가 한 일은:
version: '3.8' services: app: build: . depends_on: - postgres ports: - "8080:8080" volumes: - ./:/usr/src/app/ container_name: docker-compose-employees image: [Docker-Hub-Username]/docker-compose:latest
도커 합성 앱은 컨테이너 이름으로 실행됩니다.docker-compose-employees
그고그이는지미리▁called라는 .[Docker-Hub-Username]/docker-compose:latest
빌드뿐만 아니라 이미지를 지정하는 경우, 작성은 이미지에 지정된 웹 앱과 선택적 태그를 사용하여 빌드된 이미지의 이름을 지정합니다.
image: webapp:tag
도커 검색 파일에는 다음과 같은 내용이 있습니다.
version: '3.9'
services:
node-ecom:
build: .
image: "webapp:tag"
container_name: node-ecom
ports:
- "4000:3000"
volumes:
- ./:/app:ro
- /app/node_modules
- /config/.env
env_file:
- ./config/.env
은 Jenkins를 사용하여 할 수 .stackName = prefix
.
젠킨스:
stackName = 'foo'
도커:
services:
bar:
이 그서그이름은래이은▁so름이 됩니다.foo_bar
.
도-docker.yml 파일을 합니다.image: "YOUR-DESIRED-NAME"
들어 이 예를들서이름이스비어인 의 줄wildfly
그리고 당신은 당신의 이미지의 이름을 짓기를 원합니다.wildfly_img
wildfly: image: wildfly_img
언급URL : https://stackoverflow.com/questions/32230577/how-do-i-define-the-name-of-image-built-with-docker-compose
'programing' 카테고리의 다른 글
c++와 다른 언어들을 위한 피들 타입이 있습니까? (0) | 2023.08.30 |
---|---|
이 CSS 선택기는 무엇입니까?[class*="span"] (0) | 2023.08.30 |
NPOI를 사용하여 Excel 파일에 날짜를 쓰는 데 문제가 발생 (0) | 2023.08.30 |
JSON 데이터를 MySQL로 가져와서 웹 페이지에 시각화하는 방법은 무엇입니까? (0) | 2023.08.30 |
Git에서 동일한 커밋의 파일에 현재 커밋 해시를 쓰는 방법은 무엇입니까? (0) | 2023.08.30 |