버전 3에 지정된 서비스에 대해 CPU 및 메모리를 지정할 수 없습니다.
버전 2에서는 서비스 아래의 “mem_limit”및 “cpu_shares”매개 변수와 잘 작동합니다. 그러나 버전 3을 사용하는 동안 실패하고, 내가 떼 모드를 사용하지 않는 한 배포 섹션 아래에 두는 것은 가치가없는 것 같습니다.
누군가 도울 수 있습니까?
version: "3"
services:
node:
build:
context: .
dockerfile: ./docker-build/Dockerfile.node
restart: always
environment:
- VIRTUAL_HOST=localhost
volumes:
- logs:/app/out/
expose:
- 8083
command: ["npm","start"]
cap_drop:
- NET_ADMIN
- SYS_ADMIN
답변
주제가 약간 오래되고 부실해 보이지만 어쨌든 다음 옵션을 사용할 수있었습니다.
deploy:
resources:
limits:
cpus: '0.001'
memory: 50M
3.7 버전의 docker-compose를 사용할 때
제 경우에 도움이 된 것은 다음 명령을 사용하는 것입니다.
docker-compose --compatibility up
--compatibility
flag는 (문서에서 가져옴) :
설정된 경우 Compose는 v3 파일의 배포 키를 Swarm이 아닌 해당 키로 변환하려고 시도합니다.
도커 작성 파일을 v2로 되돌릴 필요가 없다는 것이 훌륭하다고 생각하십시오.
답변
deploy:
resources:
limits:
cpus: '0.001'
memory: 50M
reservations:
cpus: '0.0001'
memory: 20M
더보기 : https://docs.docker.com/compose/compose-file/#resources
특정 경우 :
version: "3"
services:
node:
image: USER/Your-Pre-Built-Image
environment:
- VIRTUAL_HOST=localhost
volumes:
- logs:/app/out/
command: ["npm","start"]
cap_drop:
- NET_ADMIN
- SYS_ADMIN
deploy:
resources:
limits:
cpus: '0.001'
memory: 50M
reservations:
cpus: '0.0001'
memory: 20M
volumes:
- logs
networks:
default:
driver: overlay
노트 :
- 노출은 필요하지 않으며 스택 네트워크에서 기본적으로 노출됩니다.
- 이미지는 미리 빌드해야합니다. v3 내에서 빌드 할 수 없습니다.
- “다시 시작”도 더 이상 사용되지 않습니다. 실패시 작업으로 배포에서 다시 시작을 사용할 수 있습니다.
- 독립형 하나의 노드 “swarm”을 사용할 수 있습니다. v3 대부분의 개선 사항 (모두는 아니지만)은 무리를위한 것입니다.
또한 참고 :
Swarm 모드의 네트워크는 연결되지 않습니다. 내부적으로 만 연결하려면 네트워크에 연결해야합니다. 1) 다른 compose 파일 내에서 외부 네트워크를 지정하거나 –attachable 매개 변수를 사용하여 네트워크를 생성해야합니다 (docker network create -d overlay My-Network –attachable) 그렇지 않으면 다음과 같이 포트를 게시해야합니다.
ports:
- 80:80
답변
도커 작성은 지원하지 않습니다deploy
키를 누릅니다. Docker Stack에서 버전 3 YAML 파일을 사용할 때만 존중됩니다.
이 메시지는 파일에 deploy
키를 추가 docker-compose.yml
한 다음 실행 하면 인쇄됩니다.docker-compose up -d
경고 : 일부 서비스 (데이터베이스)는 무시되는 ‘배포’키를 사용합니다. Compose는 ‘배포’구성을 지원하지 않습니다
docker
. 떼에 배포하는 데 사용 합니다.
stack deploy
설명서 ( https://docs.docker.com/compose/compose-file/#deploy )에 따르면 다음과 같습니다.
서비스 배포 및 실행과 관련된 구성을 지정합니다. 이것은 docker stack deploy를 사용하여 떼에 배포 할 때만 적용되며 docker-compose up 및 docker-compose 실행에서는 무시됩니다.