O Docker está instalado, mas o Docker Compose não está? porque?

127

Eu instalei o docker no centos 7. executando os seguintes comandos,

curl -sSL https://get.docker.com/ | sh
systemctl enable docker && systemctl start docker
docker run hello-world

NOTA: O helloworld funciona corretamente e não há problemas.

no entanto, quando estou tentando executar o docker-compose (o docker-compose.yml existe e é válido), ele me dá o erro apenas no Centos (a versão do Windows funciona bem no arquivo docker-compose)

/usr/local/bin/docker-compose: line 1: {error:Not Found}: command not found
mahen3d
fonte
5
Curiosamente, para Windows e Mac tudo é carregado e disponível enquanto os usuários do Linux tem que ir através do trabalho penoso de digitação e instalar coisas separadamente e descobrir coisas fora (que é divertido, é claro)
killjoy

Respostas:

277

Você também precisa instalar o Docker Compose. Veja o manual . Aqui estão os comandos que você precisa executar

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)"  -o /usr/local/bin/docker-compose
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
Daniel Stefaniuk
fonte
4
Ao executar a segunda linha que eu receber uma resposta:mv: rename ./docker-compose to /usr/bin/docker-compose: Operation not permitted
kuanb
4
@kuanb se ele diz que a permissão não é permitido garantir que o retorno tem direitos sudo completos
killstreet
Por enquanto a versão 1.7.0 é antiga. De acordo com docs.docker.com/compose/install, a nova versão é 1.11.2. Isso significa que, em vez de curl -L github.com/docker/compose/releases/download/1.7.0/…uname -s - uname -m> ./docker-compose deve ser usado curl -L github.com/docker/compose/releases/download/ 1.11.2 /…uname -s - uname -m> ./docker-compose
Yuriy Zaletskyy 15/03
1
Verifique se o link apontando para a versão GitHub não está desatualizado! Confira os últimos lançamentos no GitHub . Você também pode fazer o download do arquivo mais recente no navegador e, em seguida, basta mover e conceder permissão de execução.
totymedli
1
Ainda estou aprendendo sobre o docker, mas, como eu entendi, o docker-compose não deve ser usado para novas instalações, pois todos os seus recursos foram integrados ao docker-cli principal com docker stacke ao docker swarm. vsupalov.com/difference-docker-compose-and-docker-stack . Talvez esta resposta deve mencionar que, uma vez que aparecem em primeiro lugar no Google ao procurar estivador-compor
Eloims
40

Estou instalando em um Raspberry Pi 3, com Raspbian 8. O método curl falhou para mim ( ocorreu um line 1: Not: command not founderro ao solicitar docker-compose --version) e a solução do @ sunapi386 parecia um pouco desatualizada, então tentei o que funcionou:

Primeiro limpe as coisas dos esforços anteriores:

sudo rm /usr/local/bin/docker-compose
sudo pip uninstall docker-compose

Em seguida, siga estas orientações para redefinir a janela de encaixe no Rpi :

sudo apt-get -y install python-pip
sudo pip install docker-compose

Para mim (em 1 de novembro de 2017), isso resulta na seguinte resposta a docker-compose --version:

docker-compose version 1.16.1, build 6d1ac219
Scott Veirs
fonte
6
Sua solução funciona perfeitamente! Se você não precisar da versão mais recente do docker-compose, também poderá usá-lo apt-get install docker-compose. Obviamente, isso requer que você tenha adicionado o repositório docker ao sources.list do seu apt (o script de instalação do get.docker.com executa isso automaticamente para você). No entanto, no meu Raspberry Pi 3 com Raspian estiramento Lite isso resultou em uma versão muito antiga: docker-compose version 1.8.0, build unknown. Esta versão é tão antiga que suporta apenas a versão 2 do formato de arquivo docker-compose.
22618 Robert
Impressionante, isso me ajudou a obter o erro docker-comps no aws. Obrigado
Laser Hawk
1
Eu tive alguns problemas e usei 'apt purge' e 'pip uninstall' para docker-compose e reinstale novamente (não tenho certeza se um ou ambos), mas a parte importante da solução também foi: pip install --upgrade docker-py
mirek 25/10
Perfeito! sem qualquer verificação de curvatura, chmod e versão. Última versão da instalação automática. Deve ser aceito como resposta.
Cherry
Ocorreram muitos erros ao usar o pip para instalar o docker-compose. Se você também, tente esta resposta stackoverflow.com/a/43012312/430773
Vik
10

Estou instalando em um Raspberry Pi 3, no Raspbian OS. O curlmétodo não resolveu para uma resposta válida. Também disse {error: Not Found}, dei uma olhada na URL https://github.com/docker/compose/releases/download/1.11.2/docker-compose-Linux-armv7le ela não era válida. Eu acho que não havia nenhuma construção lá.

Este guia https://github.com/hypriot/arm-compose funcionou para mim.

sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ jessie main" | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 37BBEE3F7AD95B3F
sudo apt-get update
sudo apt-get install docker-compose
sunapi386
fonte
9

Se você instalou o docker adicionando o repositório oficial à sua lista de repositórios, como:

curl -L https://nightly.odoo.com/odoo.key | apt-key add -
sudo echo "deb http://nightly.odoo.com/10.0/nightly/deb/ ./" >> /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

Apenas faça:

$ sudo apt-get install docker-compose

No caso de distro baseado em RHEL / Fedora:

$ sudo dnf install docker-compose
Gayan Weerakutti
fonte
1
O apt get - mesmo depois de adicionar os repositórios que eles especificam para o docker CE, parece conter apenas docker-compose1,8, o que é compatível com um docker-compose.ymlarquivo máximo da versão 2. Em outras palavras, eles não estão mais publicando docker-composeem apt-getrepositórios padrão ou em seus próprios apt- obter repositório. Para obter versões mais recentes, parece que você precisa usar pip. Isso me irrita, já que é literalmente a única coisa para a qual estou usando o pip.
Groostav
5

Antes de tudo, verifique se o docker-compose está instalado,

$ docker-compose -v

Se não estiver instalado, consulte o guia de instalação https://docs.docker.com/compose/install/ Se instalado, dê permissão executável ao binário.

$ chmod +x /usr/local/bin/docker-compose

verifique se isso funciona.

UM FILHO
fonte
5

Estou no debian, encontrei algo bastante natural para fazer:

apt-get install docker-compose

e fez o trabalho (não testado em centos)

herve-guerin
fonte
1

Referindo-me às respostas fornecidas acima (não tenho reputação suficiente para me referir separadamente a soluções individuais, portanto, faço isso coletivamente neste local), desejo complementá-las com algumas sugestões importantes:

  1. docker-compose você pode instalar a partir do repositório (se você tiver este pacote no repositório, caso contrário não poderá adicionar ao sistema um repositório com este pacote) ou fazer o download do binário com use curl - totourial no site oficial do projeto - src: https://docs.docker.com/compose/install /

  2. O docker-compose do repositório está na versão 1.8.0 (pelo menos para mim). Esta versão do docker-compose não suporta arquivos de configuração na versão 3. Ela possui apenas o suporte version = <2. No site oficial do projeto, há uma recomendação para usar a configuração de contêiner na versão 3 - src: https://docs.docker.com/compose/compose-file / compone-versioning /. De minha própria experiência com o trabalho na janela de encaixe, recomendo o uso de configurações de contêiner na versão 3 - há mais opções de configuração do que nas versões <3. Se você deseja usar as configurações da versão 3, atualize / instale o docker-compose para a versão de pelo menos 1.17 - de preferência a última estável. O site oficial do projeto é detalhado sobre como fazer esse processo - src:https://docs.docker.com/compose/install/

  3. ao tentar remover manualmente os binários antigos de composição do docker, você pode obter informações sobre o arquivo ausente no caminho padrão /usr/local/bin/docker-compose. No meu caso, docker-compose estava no caminho padrão / usr / bin / docker-compose. Neste caso, eu sugiro que você use a ferramenta encontrar no seu sistema para encontrar arquivo binário estivador-compor - exemplo de sintaxe: sudo find / -name 'docker-compose'. Isso me ajudou. Graças a isso, removi a versão antiga do docker-composite e adicionei o stable ao sistema - uso a ferramenta curl para baixar o arquivo binário docker-compose, colocando-o no caminho certo e concedendo as permissões corretas - todo esse processo descrito nas postagens acima.

Atenciosamente, Adam

Adam Wądołkowski
fonte
0

Instalar a janela de encaixe não significa que você instalou a janela de encaixe. Tem como pré-requisitos que você já instalou o mecanismo do docker que já fez. Depois disso, você poderá instalar o docker-compose seguindo este link para o Centos 7.

lvthillo
fonte
Não, executei o comando "yum install docker-engine", mas recebo o erro Package docker-engine-1.11.0-1.el7.centos.x86_64 já instalado e a versão mais recente e ainda sem o docker-compondo, ele me dá erro / usr / local / bin / docker-compose: linha 1: {erro: não encontrado}: comando não encontrado
mahen3d 18/16
Como eu disse: o mecanismo do Docker é algo diferente do que o Docker compõe. Assim, você pode instalar o mecanismo do docker e apenas trabalhar com o docker, mas quando quiser usar o docker compose, precisará instalá-lo separadamente (onde a instalação do mecanismo é uma condição prévia (você já fez isso)). Portanto, tente agora o link que eu dei na resposta (você pode usar onda ou pip para instalar estivador-compose)
lvthillo
0

O docker-compose é atualmente uma ferramenta que utiliza o docker (-engine), mas não está incluído na distribuição do docker.

Aqui está o link para o manual de instalação: https://docs.docker.com/compose/install/

TL; DR:

curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/bin/docker-compose

(1.8.0 mudará no futuro)

Patrick Cornelissen
fonte
0

As soluções acima não funcionaram para mim. Mas eu achei isso que funcionou:

sudo apt-get update -y && sudo apt-get install -y python3-pip python3-dev
sudo apt-get remove docker docker-engine docker.io
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo pip3 install docker-compose
#sudo docker-compose -f docker-compose-profess.yml pull ofw
sudo usermod -a -G docker $USER
sudo reboot
Shaun Barney
fonte