yup*_*guy 14 server bash docker
我已在 Ubuntu Server 20.04 上以非 sudo 用户身份安装了最新的 Docker Compose,并使用以下命令在非 sudo 用户目录中安装了 docker-rootless 守护进程:
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
Run Code Online (Sandbox Code Playgroud)
并通过以下方式验证安装是否成功:
$ docker compose version
Docker Compose version v2.2.3
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试执行我创建的docker-compose up -d
文件时.yml
,我都会得到以下输出:
$ 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.
Run Code Online (Sandbox Code Playgroud)
docker.sock
尽管我的非 root 用户的文件包含~/.bashrc
:
export PATH=/usr/bin:$PATH
export DOCKER_HOST=unix:///run/user/1007/docker.sock
Run Code Online (Sandbox Code Playgroud)
如何让 Docker Compose 识别正确的docker.sock
文件?
Art*_*ild 27
您在 Docker Compose 命令中犯了一个非常基本的错误。
Docker Compose V1 具有命令语法docker-compose
(docker-compose
是一个单独的命令)。
Docker Compose V2 具有命令语法docker compose
(compose
是命令的子命令docker
)。
由于您已经安装了 Docker Compose V2 分支,因此您不能使用docker-compose up -d
,而应该使用正确的 V2 语法:
docker compose up -d
Run Code Online (Sandbox Code Playgroud)
我假设大多数安装指令docker-compose
在一段时间内仍将使用旧语法,直到 V2 变得更加主流。同时,如果您运行的是 V2,请记住替换为新语法。
如果您想保留与旧语法的兼容性,您可以创建如下别名:
alias docker-compose='docker compose'
Run Code Online (Sandbox Code Playgroud)
这应该适用于大多数情况。
有关新 V2 语法的参考,请参阅此处。
归档时间: |
|
查看次数: |
39781 次 |
最近记录: |