Compose file version 3 reference #2 정보
Compose file version 3 reference #2관련링크
본문
LONG SYNTAX
긴 형식 구문을 사용하면 짧은 형식으로 표현할 수 없는 추가 필드를 구성할 수 있습니다.
type
: 마운트 유형volume
,bind
,tmpfs
또는npipe
source
: 마운트 소스, 바인드 마운트를 위한 호스트의 경로 또는 [최상위볼륨
키](https://docs.docker.com/compose/compose-file /#volume-configuration-reference)에 정의된 볼륨 이름을 참조하십시오.tmpfs
마운트에는 적용되지 않습니다.target
: 볼륨이 마운트 된 컨테이너의 경로read_only
: 볼륨을 읽기 전용으로 설정하는 플래그bind
: 추가 바인드 옵션 구성propagation
: 블라인드에 사용되는 전파 모드volume
: 추가 볼륨 옵션 구성nocopy
: 볼륨을 만들 때 컨테이너에서 데이터를 복사하지 못하도록하는 플래그tmpfs
: 추가 tmpfs 옵션 구성size
: 바이트 단위의 tmpfs 마운트 크기consistency
: 마운트의 일관성 요구 사항,consistent
(호스트와 컨테이너는 동일한보기를 가짐),cached
(읽기 캐시, 호스트보기는 신뢰할 수 있음) 또는delegated
(읽기-쓰기 캐시, 컨테이너보기는 신뢰할 수 있음)
version: "3.7"
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- type: volume
source: mydata
target: /data
volume:
nocopy: true
- type: bind
source: ./static
target: /opt/app/static
networks:
webnet:
volumes:
mydata:
참조: 긴 구문은 v3.2 의 새로운 기능
VOLUMES FOR SERVICES, SWARMS, AND STACK FILES
서비스, swarms 및 docker-stack.yml
파일로 작업 할 때 서비스를 지원하는 작업(컨테이너)은 swarm 의 모든 노드에 배포 할 수 있으며 서비스가 업데이트될 때마다 다른 노드 일 수 있습니다.
지정된 소스가 있는 명명된 볼륨이 없으면 Docker 는 서비스를 지원하는 각 작업에 대해 익명의 볼륨을 만듭니다. 연결된 컨테이너를 제거한 후에도 익명 볼륨이 유지되지 않습니다.
데이터를 유지하려면 이름이 지정된 볼륨과 멀티 호스트를 인식하는 볼륨 드라이버를 사용하여 모든 노드에서 데이터에 액세스할 수 있도록 하십시오. 또는 서비스가 볼륨이 있는 노드에 배치되도록 서비스에 대한 제한 조건을 설정하십시오.
예를 들어 Docker Labs의 votingapp 샘플에 대한 docker-stack.yml
파일은 postgres ' 데이터베이스를 실행하는
db라는 서비스를 정의합니다. swarm의 데이터를 유지하기 위해 명명된 볼륨으로 구성되며
manager` 노드에서만 실행되도록 제한됩니다. 해당 파일의 관련 내용은 다음과 같습니다.
version: "3.7"
services:
db:
image: postgres:9.4
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
constraints: [node.role == manager]
CACHING OPTIONS FOR VOLUME MOUNTS (DOCKER DESKTOP FOR Mac)
17.06 CE Edge 및 Stable 을 포함한 Docker 17.04 CE Edge 이상에서는 작성 파일의 바인드 마운트 디렉토리에 대한 컨테이너 및 호스트 일관성 요구 사항을 구성하여 볼륨 마운트의 읽기/쓰기 성능을 향상시킬 수 있습니다. 이 옵션은 osxfs
파일 공유와 관련된 문제를 해결하므로 Mac 용 Docker Desktop 에만 적용됩니다.
플래그는 다음과 같습니다.
-
consistent
: 완전한 일관성. 컨테이너 런타임과 호스트는 항상 동일한 마운트보기를 유지합니다. 이것이 기본값입니다. -
cached
: T 마운트에 대한 호스트의 관점은 권위적입니다. 컨테이너에서 호스트의 업데이트가 표시되기까지 지연이있을 수 있습니다. -
delegated
: 컨테이너 런타임의 마운트보기는 신뢰할 수 있습니다. 컨테이너에서 작성된 업데이트가 호스트에 표시되기까지 지연이있을 수 있습니다.
다음은 볼륨을 `cached '로 구성하는 예입니다.
version: "3.7"
services:
php:
image: php:7.1-fpm
ports:
- "9000"
volumes:
- .:/var/www/project:cached
이 플래그들, 그것들이 해결하는 문제들, 그리고 그들의 도커 실행에 대한 자세한 내용은 [Docker Desktop for Mac 주제 볼륨 마운트 (공유 파일 시스템) 튜닝](https://docs.docker.com/docker- for-Mac / osxfs-caching/)에 있습니다.
domainname, hostname, ipc, Mac_address, privileged, read_only, shm_size, stdin_open, tty, user, working_dir
이들 각각은 docker run과 유사한 단일 값입니다. mac_address
는 레거시 옵션입니다.
user: postgresql
working_dir: /code
domainname: foo.com
hostname: foo
ipc: host
mac_address: 02:42:ac:11:65:43
privileged: true
read_only: true
shm_size: 64M
stdin_open: true
tty: true
Specifying durations
check
의 interval
및 timeout
하위 옵션과 같은 일부 구성 옵션은 기간을 문자열로 허용합니다. 다음과 같은 형식으로 :
2.5s
10s
1m30s
2h32m
5h34m56s
지원되는 단위는 us
, ms
, s
, m
및 h
입니다.
Specifying byte values
build
의 shm_size
하위 옵션과 같은 일부 구성 옵션은 바이트 값을 문자열 형식으로 받아들입니다. 이것은 다음과 같습니다
2b
1024kb
2048k
300m
1gb
지원되는 단위는 b
, k
, m
및 g
와 대체 표기법 kb
, mb
및 gb
입니다. 현재 10 진수 값은 지원되지 않습니다.
Volume configuration reference
서비스 선언의 일부로 파일에 volumes를 선언할 수 있지만 이 섹션에서는 이름이없는 볼륨을 만들 수 있습니다 (volumes_from
)에서 여러 서비스에서 재사용할 수 있으며 docker 명령 줄 또는 API 를 사용하여 쉽게 검색하고 검사할 수 있습니다. 자세한 내용은 docker volume 하위 명령 설명서를 참조하십시오.
볼륨에 대한 일반적인 정보는 볼륨 사용 및 Volume Plugins를 참조하십시오.
다음은 데이터베이스의 데이터 디렉토리가 주기적으로 백업 할 수 있도록 볼륨과 같은 다른 서비스와 공유하는 두 개의 서비스 설정의 예입니다:
version: "3.7"
services:
db:
image: db
volumes:
- data-volume:/var/lib/db
backup:
image: backup-service
volumes:
- data-volume:/var/lib/backup/data
volumes:
data-volume:
최상위 volumes
키 아래의 항목은 비어있을 수 있으며, 이 경우 엔진에서 구성한 기본 드라이버 (대부분의 경우 local
드라이버)가 사용됩니다. 선택적으로 다음 키를 사용하여 구성할 수 있습니다.
driver
이 볼륨에 사용해야 할 볼륨 드라이버를 지정하십시오. Docker Engine 이 사용하도록 구성된 드라이버 (기본값은 대부분 local
)입니다. 드라이버를 사용할 수 없으면 docker-compose up
이 볼륨을 만들려고 할 때 엔진에서 오류를 반환합니다.
driver: foobar
driver_opts
이 볼륨의 드라이버에 전달할 옵션 목록을 키-값 쌍으로 지정하십시오. 이러한 옵션은 드라이버에 따라 다릅니다. 자세한 내용은 드라이버 설명서를 참조하십시오. 선택 과목.
volumes:
example:
driver_opts:
type: "nfs"
o: "addr=10.40.0.199,nolock,soft,rw"
device: ":/docker/example"
external
true
로 설정하면 이 볼륨이 작성 외부에서 작성되도록 지정합니다. docker-compose up
은 그것을 만들려고 시도하지 않고 존재하지 않는 경우 오류를 발생시킵니다.
버전 3.3 이하의 형식에서는 external
을 다른 볼륨 구성 키 (driver
, driver_opts
, labels
)와 함께 사용할 수 없습니다. 버전 3.4 이상에서는 이 제한이 더 이상 존재하지 않습니다.
아래 예제에서, [projectname]_data
라는 볼륨을 만들려고 시도하는 대신 Compose 는 단순히 data
라는 기존 볼륨을 찾아서 db
서비스 컨테이너에 마운트합니다.
version: "3.7"
services:
db:
image: postgres
volumes:
- data:/var/lib/postgresql/data
volumes:
data:
external: true
external.name은 버전 3.4 파일 형식에서 더 이상 사용되지 않습니다 대신
name
을 사용하십시오.
작성 파일에서 볼륨을 참조하는 데 사용된 이름과 별도로 볼륨 이름을 지정할 수도 있습니다.
volumes:
data:
external:
name: actual-name-of-volume
외부 볼륨은 항상 docker stack deploy 로 생성됩니다
존재하지 않는 외부 볼륨은 docker compose up 대신 swarm mode에서 docker stack deploy를 사용하여 앱을 시작하면 생성됩니다. 스웜 모드에서는 서비스가 볼륨을 정의 할 때 볼륨이 자동으로 생성됩니다. 서비스 작업이 새 노드에서 예약되면 swarmkit은 로컬 노드에 볼륨을 만듭니다. 자세한 내용은 moby/moby#29976를 참조하십시오.
labels
Docker labels를 사용하여 컨테이너에 메타 데이터를 추가하십시오. 배열이나 사전을 사용할 수 있습니다.
레이블이 다른 소프트웨어에서 사용되는 레이블과 충돌하지 않도록 역 DNS 표기법을 사용하는 것이 좋습니다.
labels:
com.example.description: "Database volume"
com.example.department: "IT/Ops"
com.example.label-with-empty-value: ""
labels:
- "com.example.description=Database volume"
- "com.example.department=IT/Ops"
- "com.example.label-with-empty-value"
name
이 볼륨의 사용자 정의 이름을 설정하십시오. 이름 필드는 특수 문자가 포함된 볼륨을 참조하는 데 사용할 수 있습니다. 이름은 그대로 사용되며 스택 이름으로 범위가 지정되지 않습니다.
version: "3.7"
volumes:
data:
name: my-app-data
external
속성과 함께 사용할 수도 있습니다:
version: "3.7"
volumes:
data:
external: true
name: my-app-data
Network configuration reference
최상위 networks
키를 사용하면 생성 할 네트워크를 지정할 수 있습니다.
-
Compose 의 Docker 네트워킹 기능 및 모든 네트워크 드라이버 옵션 사용에 대한 자세한 내용은 네트워킹 안내서를 참조하십시오.
-
네트워킹에 대한 Docker Labs 자습서의 경우 확장 가능한 휴대용 Docker 컨테이너 네트워크 설계로 시작하십시오.
driver
이 네트워크에 사용할 드라이버를 지정하십시오.
기본 드라이버는 사용중인 Docker Engine 의 구성 방식에 따라 다르지만 대부분의 경우 단일 호스트에서 bridge
이고 Swarm 에서 overlay
입니다.
드라이버를 사용할 수없는 경우 Docker 엔진이 오류를 반환합니다.
driver: overlay
BRIDGE
Docker 는 기본적으로 단일 호스트에서 bridge
네트워크를 사용합니다. 브리지 네트워크로 작업하는 방법에 대한 예는 Bridge 네트워킹의 Docker Labs 자습서를 참조하십시오.
OVERLAY
overlay
드라이버는 swarm의 여러 노드에 걸쳐 명명된 네트워크를 만듭니다.
-
스웜 모드의 서비스로 '오버레이'네트워크를 구축하고 사용하는 방법에 대한 실제 예는 오버레이 네트워킹 및 서비스 검색의 Docker Labs 자습서를 참조하십시오.
-
후드에서 어떻게 작동하는지에 대한 자세한 내용은 Overlay Driver Network Architecture의 네트워킹 개념 랩을 참조하십시오.
HOST OR NONE
호스트의 네트워킹 스택을 사용하거나 네트워킹을 사용하지 않습니다. docker run --net=host
또는docker run --net=none
과 같습니다. docker stack
명령을 사용하는 경우에만 사용됩니다. docker-compose
명령을 사용하는 경우 network_mode를 대신 사용하십시오.
공통 빌드에서 특정 네트워크를 사용하려면 두 번째 YAML 파일 예제에서 언급 한대로 [network]를 사용하십시오.
host
및 none
과 같은 내장 네트워크를 사용하는 구문은 약간 다릅니다. 이름이 host
또는 none
인 외부 네트워크를 정의하십시오 (Docker 는 이미 자동으로 작성 됨) 그리고 Compose 가 사용할 수 있는 별명 (다음 예에서hostnet
또는 nonet
)을 선택한 다음 별명을 사용하여 해당 네트워크에 대한 서비스 액세스 권한을 부여하십시오.
version: "3.7"
services:
web:
networks:
hostnet: {}
networks:
hostnet:
external: true
name: host
services:
web:
...
build:
...
network: host
context: .
...
services:
web:
...
networks:
nonet: {}
networks:
nonet:
external: true
name: none
driver_opts
이 네트워크의 드라이버로 전달할 옵션 목록을 키-값 쌍으로 지정하십시오. 이러한 옵션은 드라이버에 따라 다릅니다. 자세한 내용은 드라이버 설명서를 참조하십시오. 선택 과목.
driver_opts:
foo: "bar"
baz: 1
attachable
참조: v3.2 이상에서만 지원됩니다.
driver
가 overlay
로 설정된 경우에만 사용됩니다. true
로 설정하면 독립형 컨테이너가 서비스 외에 이 네트워크에 연결될 수 있습니다. 독립형 컨테이너가 오버레이 네트워크에 연결된 경우 다른 Docker 데몬에서 오버레이 네트워크에 연결된 서비스 및 독립형 컨테이너와 통신할 수 있습니다.
networks:
mynet1:
driver: overlay
attachable: true
enable_ipv6
이 네트워크에서 IPv6 네트워킹을 활성화하십시오.
Compose File 버전 3 에서는 지원되지 않습니다.
enable_ipv6
에서는 Swarm 모드에서 이 지시어가 아직 지원되지 않으므로 버전 2 Compose 파일을 사용해야합니다.
ipam
사용자 지정 IPAM 구성을 지정하십시오. 이것은 여러 속성을 가진 객체이며 각각은 선택 사항입니다.
driver
: 기본값 대신 사용자 지정 IPAM 드라이버.config
: 각각 다음 키 중 하나를 포함하는 0 개 이상의 구성 블록이있는 목록:subnet
: 네트워크 세그먼트를 나타내는 CIDR 형식의 서브넷
전체 예:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
참조:
gateway
와 같은 추가 IPAM 구성은 현재 버전 2 에만 적용됩니다.
internal
Docker 는 기본적으로 브리지 네트워크를 연결하여 외부 연결을 제공합니다. 외부 적으로 고립된 오버레이 네트워크를 만들려면이 옵션을 true
로 설정할 수 있습니다.
labels
Docker labels를 사용하여 컨테이너에 메타 데이터를 추가하십시오. 배열이나 사전을 사용할 수 있습니다.
레이블이 다른 소프트웨어에서 사용되는 레이블과 충돌하지 않도록 역 DNS 표기법을 사용하는 것이 좋습니다.
labels:
com.example.description: "Financial transaction network"
com.example.department: "Finance"
com.example.label-with-empty-value: ""
labels:
- "com.example.description=Financial transaction network"
- "com.example.department=Finance"
- "com.example.label-with-empty-value"
external
true
로 설정하면 이 네트워크가 작성 외부에서 작성되도록 지정합니다. docker-compose up
은 그것을 만들려고 시도하지 않고 존재하지 않는 경우 오류를 발생시킵니다.
버전 3.3 이하의 형식에서는 external
을 다른 네트워크 구성 키 (driver
, driver_opts
, ipam
, internal
)와 함께 사용할 수 없습니다. 버전 3.4 이상에서는 이 제한이 더 이상 존재하지 않습니다.
아래 예에서 proxy
는 외부 세계로 가는 관문입니다. Compose 는 [projectname]_outside
라는 네트워크를 만들지 않고 단순히 outside
라는 기존 네트워크를 찾아 proxy
서비스의 컨테이너를 연결합니다.
version: "3.7"
services:
proxy:
build: ./proxy
networks:
- outside
- default
app:
build: ./app
networks:
- default
networks:
outside:
external: true
[external.name 은 버전 3.5 파일 형식에서 더 이상 사용되지 않습니다] (https://docs.docker.com/compose/compose-file/compose-versioning/#version-35) 대신
name
을 사용하십시오.
작성 파일에서 네트워크를 참조하는 데 사용되는 이름과 별도로 네트워크 이름을 지정할 수도 있습니다.
version: "3.7"
networks:
outside:
external:
name: actual-name-of-network
name
이 네트워크의 사용자 정의 이름을 설정하십시오. 이름 필드는 특수 문자가 포함된 네트워크를 참조하는 데 사용할 수 있습니다. 이름은 그대로 사용되며 스택 이름으로 범위가 지정되지 않습니다.
version: "3.7"
networks:
network1:
name: my-app-net
external
속성과 함께 사용할 수도 있습니다:
version: "3.7"
networks:
network1:
external: true
name: my-app-net
configs configuration reference
최상위 configs
선언은 이 스택의 서비스에 부여 할 수있는 configs를 정의하거나 참조합니다. 설정의 소스는 file
또는 external
입니다.
file
: 지정된 경로에 파일 내용으로 구성이 작성됩니다.external
: true 로 설정하면이 구성이 이미 작성되었음을 지정합니다. Docker 는 그것을 만들려고 시도하지 않으며 존재하지 않으면 'config not found'오류가 발생합니다.name
: Docker 의 구성 객체 이름입니다. 이 필드는 특수 문자가 포함 된 구성을 참조하는 데 사용할 수 있습니다. 이름은 그대로 사용되며 스택 이름으로 범위가 지정되지 않습니다. 버전 3.5 파일 형식으로 도입되었습니다.
이 예에서 스택이 배포되면 my_first_config
가 생성됩니다.(_my_first_config
와 같이)
그리고 my_second_config
는 Docker 에 이미 존재합니다.
configs:
my_first_config:
file: ./config_data
my_second_config:
external: true
외부 구성의 또 다른 변형은 Docker 의 구성 이름이 서비스 내에 존재하는 이름과 다른 경우입니다. 다음 예제는 이전 설정을 수정하여 redis_config
라는 외부 설정을 사용합니다.
configs:
my_first_config:
file: ./config_data
my_second_config:
external:
name: redis_config
여전히 스택의 각 서비스에 구성에 대한 액세스 권한 부여가 필요합니다.
secrets configuration reference
최상위 secrets
선언은 이 스택의 서비스에 부여 할 수있는 secrets를 정의하거나 참조합니다. 비밀의 근원은 file
또는 external
입니다.
file
: 비밀은 지정된 경로에 파일 내용으로 작성됩니다.external
: true 로 설정하면이 비밀이 이미 작성되었음을 지정합니다. 도커는 그것을 만들려고 시도하지 않으며 존재하지 않으면secret not found
오류가 발생합니다.name
: Docker 의 비밀 객체 이름입니다. 이 필드는 특수 문자가 포함된 비밀을 참조하는 데 사용할 수 있습니다. 이름은 그대로 사용되며 스택 이름으로 범위가 지정되지 않습니다. 버전 3.5 파일 형식으로 도입되었습니다.
이 예제에서 my_first_secret
은 _my_first_secret
로 생성되며 스택이 배치되고 my_second_secret
은 Docker 에 이미 존재합니다.
secrets:
my_first_secret:
file: ./secret_data
my_second_secret:
external: true
외부 비밀의 또 다른 변형은 Docker 의 비밀 이름이 서비스 내에 존재하는 이름과 다른 경우입니다. 다음 예제는 redis_secret
이라는 외부 암호를 사용하도록 이전 암호를 수정합니다.
Compose File v3.5 and above
secrets:
my_first_secret:
file: ./secret_data
my_second_secret:
external: true
name: redis_secret
Compose File v3.4 and under
my_second_secret:
external:
name: redis_secret
여전히 스택의 각 서비스에 비밀 액세스 권한 부여이 필요합니다.
Variable substitution
구성 옵션에는 환경 변수가 포함될 수 있습니다. Compose 는 docker-compose 가 실행되는 쉘 환경의 변수 값을 사용합니다. 예를 들어, 쉘에 POSTGRES_VERSION=9.3 이 있고 이 구성을 제공한다고 가정하십시오.
db:
image: "postgres:${POSTGRES_VERSION}"
구성 옵션에는 환경 변수가 포함될 수 있습니다. Compose 는 docker-compose
가 실행되는 쉘 환경의 변수 값을 사용합니다. 예를 들어, 쉘에 POSTGRES_VERSION=이 구성으로
docker-compose up을 실행하면 Compose는 쉘에서
POSTGRES_VERSION환경 변수를 찾아 그 값을 대체합니다. 이 예에서 Compose는 실행하기 전에
image를
postgres:9.3'으로 분석합니다.
구성.환경 변수가 설정되지 않은 경우 작성은 빈 문자열로 대체됩니다. 위의 예에서 POSTGRES_VERSION
이 설정되어 있지 않으면 image
옵션의 값은 postgres:
입니다.
작성이 자동으로 찾는 [.env
파일] (https://docs.docker.com/compose/env-file/)을 사용하여 환경 변수의 기본값을 설정할 수 있습니다. 쉘 환경에서 설정된 값은 .env
파일에서 설정된 값보다 우선합니다.9.3` 이 있고 이 구성을 제공한다고 가정하십시오.
중요:
.env 파일
기능은docker-compose up
명령을 사용할 때만 작동하며docker stack deploy
에서는 작동하지 않습니다.
$VARIABLE
및 ${VARIABLE}
구문이 모두 지원됩니다. 또한 2.1 파일 형식을 사용하는 경우 일반적인 쉘 구문을 사용하여 인라인 기본값을 제공 할 수 있습니다.
${VARIABLE:-default}
는 환경에서 VARIABLE
이 설정되어 있지 않거나 비어 있으면 default
로 평가됩니다.
${VARIABLE-default}
는 환경에서 VARIABLE
이 설정되지 않은 경우에만 default
로 평가됩니다.
마찬가지로 다음 구문을 통해 필수 변수를 지정할 수 있습니다.
${VARIABLE:?err}
는 환경에서 VARIABLE
이 설정되어 있지 않거나 비어 있으면 err
를 포함하는 오류 메시지와 함께 종료됩니다.
${VARIABLE?err}
는 환경에서 VARIABLE
이 설정되어 있지 않으면 err
를 포함하는 오류 메시지와 함께 종료됩니다.
${VARIABLE/foo/bar}
와 같은 다른 확장 쉘 스타일 기능은 지원되지 않습니다.
구성에 리터럴 달러 기호가 필요한 경우 $$
(이중 달러 기호)를 사용할 수 있습니다. 이것은 또한 Compose 가 값을 보간하는 것을 막기 때문에 $$
를 사용하면 Compose 에서 처리하고 싶지 않은 환경 변수를 참조 할 수 있습니다.
web:
build: .
command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"
단일 달러 기호 ($
)를 잊어 버린 경우 Compose 는 값을 환경 변수로 해석하고 다음을 경고합니다.
VAR_NOT_INTERPOLATED_BY_COMPOSE 가 설정되지 않았습니다. 빈 문자열을 대체합니다.
Extension fields
확장 필드를 사용하여 구성 조각을 재사용 할 수 있습니다. 이러한 특수 필드는 작성 파일의 루트에 있고 이름이 x-
문자 시퀀스로 시작하는 한 어떤 형식이든 가능합니다.
참조
3.7 형식 (3.x 시리즈의 경우) 및 2.4 형식 (2.x 시리즈의 경우)부터 확장 필드는 서비스의 루트, 볼륨, 네트워크, 구성 및 비밀 정의에서도 허용됩니다.
version: '3.4'
x-custom:
items:
- a
- b
options:
max-size: '12m'
name: "custom"
해당 필드의 내용은 Compose 에서 무시되지만 YAML 앵커를 사용하여 리소스 정의에 삽입할 수 있습니다. 예를 들어 여러 서비스에서 동일한 로깅 구성을 사용하려는 경우 :
logging:
options:
max-size: '12m'
max-file: '5'
driver: json-file
다음과 같이 작성 파일을 작성할 수 있습니다.
version: '3.4'
x-logging:
&default-logging
options:
max-size: '12m'
max-file: '5'
driver: json-file
services:
web:
image: myapp/web:latest
logging: *default-logging
db:
image: mysql:latest
logging: *default-logging
YAML 병합 유형을 사용하여 확장 필드의 값을 부분적으로 무시할 수도 있습니다. 예를 들면 다음과 같습니다.
version: '3.4'
x-volumes:
&default-volume
driver: foobar-storage
services:
web:
image: myapp/web:latest
volumes: ["vol1", "vol2", "vol3"]
volumes:
vol1: *default-volume
vol2:
<< : *default-volume
name: volume02
vol3:
<< : *default-volume
driver: default
name: volume-local
Compose documentation
0
댓글 0개