"docker composition"과 "docker composition"의 차이
참고: 이 질문은 도커 문서가 업데이트되기 전에 작성되었습니다(이 질문이 업데이트된 이유입니다).차이점에 대한 문서를 지적하는 답변은 게시하지 말아주세요 :-)
는 를 .docker-compose
, 하지만 그것이 또한 있다는 것을 알아차렸습니다.docker compose
(대쉬 없이)
구글 검색을 통해 두 양식의 차이점을 빠르게 파악할 수 없었습니다.
누구라도 있나요?
docker compose
의 도움말:
docker-compose
의 도움말:
docker compose
(공백 포함)은 나머지 도커 프로젝트와 함께 작곡을 Go로 마이그레이션하는 새로운 프로젝트입니다.가입니다.v2
도커/compose 레포의 가지도커 데스크톱 사용자들에게 처음 소개되었기 때문에 리눅스의 도커 사용자들은 명령어를 보지 못했습니다.Go로 마이그레이션하는 것 외에도 composition-spec을 사용하며, 다시 쓰기의 일부는 동작 차이가 발생할 수 있습니다.
입니다.docker-compose
되지 않고 /의 v1 , 이 v2 로.v2를 설치하려면 다음과 같이 하십시오.docker compose
를 통해 의 CLI으로서를 할 수 docker-compose-plugin
꾸러미의예를 들어, 데비안에서, 나는 달립니다.apt-get install docker-compose-plugin
.
업데이트: 이 질문이 제기된 이후로 Linux 설치가 구성 v2를 포함하도록 도커에서 업데이트되었으며 도커 구성 v1은 더 이상 업데이트를 받을 수 없습니다.
도커의 캡틴 프로그램의 Brandon Mitchell은 제가 이 문제에 대해 연 github 문제에 대해 다음과 같이 답했습니다.
Docker/compose-cli 프로젝트는 Docker-cli Linux 패키지의 업스트림 릴리스에서는 사용할 수 없지만 Docker Desktop에는 포함되어 있습니다.일반적으로 설명서 페이지는 도커/cli에 있는 내용을 따르므로 이 내용을 데스크톱에 조기 공개하면 설명서가 곤란해집니다.도커 팀과 함께 이 문제를 제기하여 그들이 이 문제를 어떻게 처리하기를 원하는지 알아보겠습니다.
업데이트: 도커 깃허브 이슈에서:
gtardif가 2일전에 댓글을 달았습니다.
composition command reference doc이 지금 live입니다.
새 도커- compose 명령 참조
https://docs.docker.com/compose/ # compose-v2-그리고 새로운 docker-compose-명령어의 인용
Compose V2 and the new docker compose command
Important
The new Compose V2,
which supports the compose command as part of the Docker CLI, is now available.
Compose V2 integrates compose functions into the Docker platform,
continuing to support most of the previous docker-compose features and flags.
You can run Compose V2 by replacing the hyphen (-) with a space,
using docker compose, instead of docker-compose.
여기서 이미 말한 것 외에도, 저는 그 둘 사이의 중요한 차이점을 발견했습니다.
우리의 설정에서,docker-compose.yml
파일은 템플릿 폴더에 있습니다.이렇게 하면 동일한 템플릿을 기반으로 동일한 프로젝트의 여러 인스턴스를 실행할 수 있습니다.로컬 인스턴스에 고유한 폴더가 있습니다..env
파일(및 자체 볼륨).
템플릿도 있습니다..env
템플릿 폴더의 file : 스크립트를 사용하여 인스턴스 폴더에 복사 및 적용됩니다.
일을 하기 위해서는.docker-compose.yml
파일은 템플릿 폴더에서 다음과 같이 나타납니다.
version: "3"
services:
wordpress:
image: wordpress
container_name: "${COMPOSE_PROJECT_NAME}_wordpress"
env_file:
- ${PWD}/.env
...
그리고 지역 인스턴스는.env
파일:
# compose file location
COMPOSE_FILE=../templateFolder/docker-compose.yml
# this instance name
COMPOSE_PROJECT_NAME=foo
이런 맥락에서:
- 와 함께
docker-compose
,그.env
파일을 인스턴스 위치에서 읽습니다. 이 위치는 예상됩니다. - 와 함께
docker compose
,그.env
파일이 템플릿 위치에서 읽힙니다!
이를 무시하기 위해 템플릿 이름을 변경해야 했습니다..env
줄로 늘어놓다dotEnv
.
이 동작은 https://docs.docker.com/compose/features-uses/ #have-multiple-isolated-environments-on-a-single-host와 같이 매우 가볍게 설명됩니다.
후세를 위해 가벼운 설명은 다음과 같습니다.
Composition은 프로젝트 이름을 사용하여 환경을 서로 분리합니다. ...
기본 프로젝트 이름은 프로젝트 디렉토리의 기본 이름입니다. ...
기본 프로젝트 디렉토리는 Composite 파일의 기본 디렉토리입니다.사용자 지정 값은 --project-directory 명령줄 옵션을 사용하여 정의할 수 있습니다.
아직 포함되지 않은 경우docker
설치,docker compose
는 CLI 플러그인으로 Linux에 설치할 수 있습니다.
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | jq -r '.tag_name')
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
https://docs.docker.com/compose/cli-command/ #설치 중- compose-v2 참조
변경을 원하지 않지만 원래 레거시를 원하는 경우docker-compose
Composing 독립 실행형 vs. 라고도 알려진 기능.Compose plugin(플러그인 구성): 다음을 수행할 수 있습니다.
# Run as root
VERSION=v2.12.2
curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
# Test it
docker-compose
이를 통해 계속 사용할 수 있습니다.docker-compose
셸 스크립트에 포함되어 있습니다.
이 페이지에서 버전을 확인합니다.
이 둘 사이의 또 다른 주목할 만한 차이점은 도커 이미지 태그가 생성되는 방식입니다.두 명령 모두 이미지 태그는 COMPOSE_PROJECT_NAME envar(envar가 설정되지 않은 경우 project dir name)의 연결이고name
작성 파일의 값입니다.나이든분들은docker-compose
COMPOSE_PROJECT_NAME에 밑줄을 붙여 이름을 추가하지만 새로 추가됩니다.docker compose
명령어는 하이픈/으로 둘을 추가합니다.-
작성 파일을 고려합니다.
services:
web:
build: ./webapp
이 합성 파일이 my_proj 디렉토리에 있다고 가정하면 빌드 명령은 다른 이미지 태그를 생성합니다.
docker-compose build web
생성할 것입니다.docker.io/library/my_proj_web
docker compose build web
생성할 것입니다.docker.io/library/my_proj-web
언급URL : https://stackoverflow.com/questions/66514436/difference-between-docker-compose-and-docker-compose
'programing' 카테고리의 다른 글
C 면접시험의 '조건'은 무엇입니까? (0) | 2023.09.21 |
---|---|
디렌트 구조의 구성원 (0) | 2023.09.21 |
워드프레스 관리자:Custom Post Type(사용자 지정 게시 유형)을 상위 메뉴의 하위 메뉴로 배치할 때 상위 메뉴 링크가 CPT에 의해 재정의됩니다. (0) | 2023.09.21 |
안드로이드 스튜디오에서 'libs' 폴더를 추가하는 방법은? (0) | 2023.09.21 |
서명된 int와 서명되지 않은 int 사이의 캐스트는 메모리에서 변수의 정확한 비트 패턴을 유지합니까? (0) | 2023.09.21 |