Docker Compose未找到命令的排查与解决方案
遇到“docker-compose: command not found”不要慌,一套完整的排查、安装与配置思路,覆盖 v1/v2 差异和 PATH 问题。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-08-09 16:07:22 Docker Ubuntu 安装教程
这篇记录一下在 Ubuntu 上装 Docker CE 的流程,方便自己以后翻,也希望能帮别人少踩几个坑。
如果机器上以前装过老版本的 Docker,比如 docker.io 或者 docker-compose,先把它们卸掉,免得后面冲突。这一步不是必须,但遇到过因为旧包导致装不上的情况。
sudo apt remove docker docker-engine docker.io containerd runc
系统包先更新到最新,然后装几个后面会用到的依赖。
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
接下来添加 Docker 官方的 GPG 密钥,不然 apt 会不认源。下载后转换格式放到 /usr/share/keyrings 下,这个路径在 apt 的新版本里是标准做法。
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o docker.gpg
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg docker.gpg
下载的 docker.gpg 临时文件留着也没用,可以随手删掉。
仓库配置这里要用到系统架构和 Ubuntu 的版本代号,用 dpkg --print-architecture 和 lsb_release -cs 动态获取,避免写死导致不匹配。
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
源更新完就可以装了。三个包:docker-ce、docker-ce-cli、containerd.io。
sudo apt install -y docker-ce docker-ce-cli containerd.io
启动服务,顺便设成开机自启,省得每次重启服务器还得手动起。
sudo systemctl start docker
sudo systemctl enable docker
这时候用 docker run hello-world 验证一下,能正常输出就说明安装成功了。
sudo docker run hello-world
在国内网络环境下,直接从 Docker Hub 拉镜像经常慢到断掉。
需要配一个镜像加速器,这里用 DaoCloud 的镜像源,目前还算稳定。配置文件写到 /etc/docker/daemon.json。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
如果希望非 root 用户也能直接用 Docker,把自己加到 docker 组里就行。改完用户组后 newgrp docker 可以让当前会话立即生效,不用重新登录。
sudo usermod -aG docker $USER
newgrp docker
不过加组之后该用户就拥有了几乎等同于 root 的操作权限,生产环境得自己掂量一下。
还有一个容易被忽略的点:如果系统用 ufw 或 firewalld 做防火墙,Docker 操纵的是 iptables,它暴露的容器端口会绕过这些用户态防火墙规则。也就是说,哪怕 ufw 里没放行某个端口,只要容器端口映射到了宿主机,外部还是能访问到。这个行为本身不是 bug,但部署时需要留意,最好在容器编排层面做限制或者手动管理 iptables 规则。
上一篇: 2026年SSL证书自动化落地观察
遇到“docker-compose: command not found”不要慌,一套完整的排查、安装与配置思路,覆盖 v1/v2 差异和 PATH 问题。
在Ubuntu下遇到“库文件找不到”或版本冲突?本指南将带你彻底解决这些棘手问题!深入剖析LD_LIBRARY_PATH的魔法,教你掌握临时、用户级和系统级三种配置方法,确保你的程序流畅运行。不再为库路径烦恼,高效开发从这里开始。
初识Docker Compose?本文是专为Docker新手打造的极简入门教程。我们将带你了解Compose的核心概念,学习如何通过一个简单的YAML文件定义并运行多个相互关联的Docker容器服务。告别繁琐的命令行,轻松实现应用的容器化部署,迈出微服务实践的第一步!
在Docker的优雅舞台上,Caddy携手阿里云DNS,通过精妙的自动化编排,实现SSL证书的无缝申请与部署,为您的数字领地披上坚不可摧的安全铠甲。
驾驭Caddy与Docker之舟,借阿里云DNS之力,简雅实现SSL证书的自动化签发与部署,守护数字疆域,领略安全部署的诗意。