docker 安装 & 配置流程
背景
本文安装环境:ubuntu
安装 docker
[可选] 卸载非官方的 Docker 包
安装 Docker Engine 之前,需要卸载所有冲突包。
Linux 发行版可能提供非官方的 Docker 包,这可能会与 Docker 官方包发生冲突。在安装官方版本的 Docker Engine 之前,必须先卸载这些包
需要卸载非官方的包可能有:
-
docker.io -
docker-compose -
docker-compose-v2 -
docker-doc -
podman-docker
执行以下命令卸载所有冲突包:
sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
通过 apt 安装
配置 Docker 的 apt 仓库
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
apt 安装 docker
# 安装最新版本
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 安装指定版本
apt list --all-versions docker-ce
Listing... Done
docker-ce/noble 5:29.1.2-1~ubuntu.24.04~noble amd64
docker-ce/noble 5:29.1.1-1~ubuntu.24.04~noble amd64
docker-ce/noble 5:29.1.0-1~ubuntu.24.04~noble amd64
...
# 选择所需版本并安装
VERSION_STRING=5:29.1.2-1~ubuntu.24.04~noble amd64
sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
验证 docker 服务是否正常启动:sudo systemctl status docker

docker 配置
执行命令:vim /etc/docker/daemon.json
参考下面内容填入
{
"data-root": "/mnt/data/docker/docker-data",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"registry-mirrors": [
],
"insecure-registries": [
],
"dns": [
"8.8.8.8",
"114.114.114.114"
]
}
配置解释:
| 字段 | 说明 |
|---|---|
| data-root | docker 服务默认会将数据保存到系统盘。 而一般来说会将 docker 数据存放到数据盘,不占用系统盘空间/方便迁移数据/不受重装系统影响。 |
| log-driver | 定容器日志的存储格式为 JSON 文件(默认值) |
| log-opts | 日志选项 |
| log-opts.max-size | 限制单个容器日志文件的最大大小,防止容器日志无限增长占用磁盘空间 |
| max-file.max-size | 日志轮转,最大暴露文件个数 |
| registry-mirrors | 配置 Docker 镜像仓库的加速地址,加快国内拉取镜像的速度 |
| insecure-registries | 允许 Docker 与未使用 HTTPS(仅用 HTTP)或证书无效的私有镜像仓库通信 |
| dns | 指定 Docker 容器使用的 DNS 服务器,解决容器内域名解析问题 |
安装 docker compose
sudo apt update
sudo apt install docker-compose-plugin
执行命令验证是否安装成功:docker compose version

docker compose 启用命令行补全
bash
要获取 Docker CLI 的 Bash 自动补全功能,首先需要安装包含多个 Bash 函数的 bash-completion 包,用于 shell 自动补全。
# Install using APT:
sudo apt install bash-completion
# Install using Homebrew (Bash version 4 or later):
brew install bash-completion@2
# Homebrew install for older versions of Bash:
brew install bash-completion
# With pacman:
sudo pacman -S bash-completion
安装 bash-completion 后,在您的 shell 配置文件中(例如, .bashrc )源脚本
# On Linux:
cat <<EOT >> ~/.bashrc
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
EOT
# On macOS / with Homebrew:
cat <<EOT >> ~/.bash_profile
[[ -r "$(brew --prefix)/etc/profile.d/bash_completion.sh" ]] && . "$(brew --prefix)/etc/profile.d/bash_completion.sh"
EOT
重新加载 shell 配置:
source ~/.bashrc
现在您可以使用 docker completion 命令生成 Bash 完成脚本:
mkdir -p ~/.local/share/bash-completion/completions
docker completion bash > ~/.local/share/bash-completion/completions/docker
Zsh
详见参考文档:docker completion
Fish
详见参考文档:docker completion