Instalei o Docker Compose mais recente como um usuário não sudo no Ubuntu Server 20.04 junto com o daemon sem raiz do docker no diretório do usuário não sudo, usando o seguinte:
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
E verificou a instalação bem-sucedida com:
$ docker compose version
Docker Compose version v2.2.3
No entanto, sempre que tento executar docker-compose up -d
um .yml
arquivo que criei, recebo a seguinte saída:
$ docker-compose up -d
WARNING:root:could not open file '/etc/apt/sources.list.d/mongodb-org-5.0.list'
Command 'docker-compose' not found, but can be installed with:
snap install docker # version 20.10.11, or
apt install docker-compose # version 1.25.0-1
See 'snap info docker' for additional versions.
O Docker Compose não está encontrando o docker.sock
arquivo correto, embora o arquivo do meu usuário não raiz ~/.bashrc
contenha:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1007/docker.sock
Como posso fazer o Docker Compose reconhecer o docker.sock
arquivo correto?
Você está cometendo um erro muito básico no comando Docker Compose.
O Docker Compose V1 tem a sintaxe de comando
docker-compose
(docker-compose
é um comando separado).O Docker Compose V2 tem a sintaxe de comando
docker compose
(compose
é um subcomando dodocker
comando).Como você instalou a ramificação do Docker Compose V2, você não pode usar
docker-compose up -d
, mas deve usar a sintaxe V2 correta:Eu diria que a maioria das instruções de instalação ainda usará a sintaxe antiga
docker-compose
por algum tempo, até que a V2 se torne mais popular. Enquanto isso, lembre-se de substituir pela nova sintaxe se estiver executando a V2.Consulte aqui a referência à nova sintaxe V2.