Docker 安装与配置指南

827 字
4 分钟
Docker 安装与配置指南

一、安装#

Note

安装前必读:本文的命令使用的是 root 用户登录执行,不是 root 的话所有命令前面要加 sudo

Tip

现在可以使用轩辕镜像站的一键安装脚本进行安装了

CentOS#

Terminal window
# 查看当前内核版本(官方建议 3.10 以上)
uname -r
# 卸载旧版本
yum remove docker docker-common docker-selinux docker-engine
# 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 yum 源(推荐阿里源)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 查看可用版本
yum list docker-ce --showduplicates | sort -r
# 安装 Docker
yum -y install docker-ce

Ubuntu#

Terminal window
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 添加 Docker 阿里源 GPG key
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 apt 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新源并安装
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
# 查看版本和状态
sudo docker version
sudo systemctl status docker

Alpine#

Terminal window
# 启用 cgroups(不启用会导致 Docker 无法启动)
rc-update add cgroups boot
rc-service cgroups start
mount | grep cgroup
# 安装 Docker
apk add docker docker-compose
# 创建配置目录
mkdir -p /etc/docker
# 写入基础配置
cat > /etc/docker/daemon.json << 'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "5m",
"max-file": "2"
},
"storage-driver": "overlay2",
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 1024,
"Soft": 512
}
},
"max-concurrent-downloads": 1,
"max-concurrent-uploads": 1
}
EOF
# 重启 Docker
rc-service docker restart

常用服务命令#

Terminal window
# systemctl 系统(CentOS / Ubuntu)
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl enable docker
# rc-service 系统(Alpine)
rc-service docker start
rc-service docker stop
rc-service docker restart

二、daemon.json 配置#

Tip

Docker Compose 的安装与使用参见:Docker Compose 安装配置,YML 编写参见:Docker Compose YML 编写

迁移存储目录#

Docker 默认将所有数据(镜像、容器、卷)存储在 /var/lib/docker/,生产环境系统盘通常空间有限,建议迁移到数据盘。

Warning

此操作建议在刚安装完 Docker 后执行,迁移前务必停止所有容器,避免数据丢失。

Terminal window
# 1. 停止 Docker 服务
sudo systemctl stop docker
# 2. 创建新的数据目录
mkdir -p /opt/docker/
chmod -R 755 /opt/docker/
# 3. 迁移现有数据(如有)
sudo cp -a /var/lib/docker/* /opt/docker/
# 4. 修改配置
mkdir -p /etc/docker
vim /etc/docker/daemon.json
/etc/docker/daemon.json
{
"data-root": "/opt/docker"
}
Terminal window
# 5. 重载配置并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
# 6. 验证新目录是否生效
sudo docker info | grep "Docker Root Dir"
# 7. 确认数据无误后删除旧目录(可选)
rm -rf /var/lib/docker

限制容器日志大小#

方法一:全局配置(推荐,对新容器生效)

/etc/docker/daemon.json
{
"log-opts": {
"max-size": "500m",
"max-file": "3"
}
}
  • max-size:单个日志文件最大 500MB
  • max-file:最多保留 3 个日志文件(滚动)
Terminal window
systemctl daemon-reload
systemctl restart docker
Note

此配置只对重启后新创建的容器生效,已运行的容器需重建才能应用。

方法二:脚本主动清理日志

/opt/scripts/clean-docker-logs.sh
#!/bin/bash
# 根据实际 data-root 修改此路径(默认 /var/lib/docker/containers)
log_path="/var/lib/docker/containers"
for container_id in $(ls "$log_path"); do
log_file="${log_path}/${container_id}/${container_id}-json.log"
if [ -f "$log_file" ]; then
echo "清理容器 ${container_id} 的日志"
truncate -s 0 "$log_file"
fi
done
echo "日志清理完成"

私服仓库地址#

Note

如需搭建私有镜像仓库,参见:Harbor 私有镜像仓库安装指南。使用自签名证书时还需配置信任:Docker 配置私服自签名证书信任

/etc/docker/daemon.json
{
"insecure-registries": [
"http://harbor:30001"
]
}

镜像加速#

/etc/docker/daemon.json
{
"registry-mirrors": [
"http://harbor:30001",
"https://docker.1panel.live"
]
}

三、完整 daemon.json 参考#

/etc/docker/daemon.json
{
"data-root": "/opt/docker",
"log-opts": {
"max-size": "500m",
"max-file": "3"
},
"insecure-registries": [
"harbor.example.com"
],
"registry-mirrors": [
"https://docker.example.com"
]
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Docker 安装与配置指南
https://blog.olinl.com/posts/docker-guide/
作者
顾拾柒
发布于
2026-03-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
顾拾柒
The world is big, you have to go and see.
公告
欢迎来到我的博客!
分类
标签
站点统计
文章
81
分类
7
标签
158
总字数
83,114
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录