다음은 내 docker-compose.yml 파일입니다.
version: '3.1'
services:
a:
image: tutum/hello-world
b:
image: tutum/hello-world
secrets:
id: my_password
내가 실행 $ docker-compose-up
하면 다음을 얻습니다.
“./docker-compose.yml”의 버전은 지원되지 않습니다. 잘못된 Compose 파일 버전을 사용하고 있기 때문에이 오류가 표시 될 수 있습니다.
내 도커 작성 버전 :
$ docker-compose --version
docker-compose version 1.11.0, build 6de1806
여기서 뭐가 잘못 됐나요? 내 docker-compose 버전이 docker-compose.yml 사양의 v3.1을 지원해야하지 않습니까 ( 릴리스 노트 에 따르면 지원 )?
답변
당신은 모든 것을 올바르게하고 있으며 작동해야합니다. 그러나 docker-compose 1.11.0에 파일 형식 3.1을 유효한 것으로 인식하지 못하는 버그 가있었습니다 . (3.0 작품).
버그 수정을 포함하는 docker-compose (1.11.1)의 새 릴리스가 이미 있습니다.
버그 수정
3.1 파일 형식이 Compose 파서에서 유효한 것으로 인식되지 않는 버그를 수정했습니다.
따라서 3.1 파일 형식을 사용하려면 docker-compose 버전을 업그레이드하는 것이 좋습니다.
현재 docker-compose를 업그레이드하는 가장 안전한 방법은 삭제하고 다시 설치하는 것입니다.
rm /usr/local/bin/docker-compose
재설치 :
curl -L https://github.com/docker/compose/releases/download/1.11.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.11.1, build 7c5d5e4
이제 파일 형식에 더 이상 오류가 없습니다. (나는 .yml로 테스트하지 않았습니다).
docker-compose up
Starting compose_a_1
Starting compose_b_1
답변
docker-compose를 업그레이드하여 문제를 해결했습니다.
ubuntu16.04에서 docker-compose를 업그레이드하는 단계는 다음과 같습니다.
1 단계:
$which docker-compose
/usr/bin/docker-compose
2 단계:
$sudo rm /usr/bin/docker-compose
step3 :
curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
4 단계 :
chmod +x /usr/bin/docker-compose
답변
파일 버전이 3.7이고 다음 오류가 발생하는 경우 :
ERROR: Version in "./config.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
해결책은 다음과 같습니다.-
(1) sudo apt-get remove docker-compose
또는sudo rm /usr/local/bin/docker-compose
(2) sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
(삼) sudo chmod +x /usr/local/bin/docker-compose
(4) sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
문제가 해결되기를 바랍니다.
답변
linux / ubuntu를 사용하는 경우 이것은 분명 할 수 있지만 루트로 실행하는 데주의하십시오.
docker-compose -v
제공
docker-compose version 1.8.0, build unknown
vs
sudo docker-compose -v
제공
docker-compose version 1.17.1, build 6d101fb
또한 docker-compose 및 docker-machine이 @lvthillo 상태 로 최신 상태 인지 확인하십시오.
답변
내가했던 docker-compose --version
lvthillo의 솔루션을 구현하기 전에 나는 아직도 오래된 버전이 게재 얻고 있었다. 내 bash 쉘이 보유하고있는 해시 목록을 플러시해야한다는 것이 밝혀졌습니다. hash -r
… 다른 사람에게 유용하기를 바랍니다.
답변
이전 버전을 제거하고 다시 설치하십시오.
sudo apt remove docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
reboot
인쇄해야한다
docker-compose --version
docker-compose version 1.22.0, build 1719ceb
답변
이 명령을 실행하여 특정 오류를 먼저 확인하지 않고는 알 수 없습니다.
docker build .
오류가 발생하면 Google에서 검색하면 sudo로 시도했을 때 권한 오류가 발생했습니다.
도움이되기를 바랍니다.