返回文章列表
服务器

服务器怎么配置Docker?

米一
2026-02-11
3天前
服务器怎么配置Docker?

    在现代服务端开发中,Docker 已经成为应用部署的标准。如果你刚刚拥有一台纯净的 Ubuntu 22.04 服务器,不要急着直接运行容器。本文将带你完成一套生产级的 Docker 环境配置。我们将不仅仅是安装 Docker,更会建立一套标准化的目录结构网络规划,为未来在一台服务器上运行 多个Docker应用且互不干扰打下坚实基础。


第一步:环境准备与旧版本清理

     首先,确保服务器处于最新状态,并清理可能存在的旧版本 Docker(防止冲突)。

# 1. 更新系统软件包sudo apt update && sudo apt upgrade -y# 2. 卸载旧版本(如果是纯净系统,这一步通常提示未安装,忽略即可)sudo apt-get remove docker docker-engine docker.io containerd runc



第二步:使用官方源安装 Docker (推荐)

     虽然 Ubuntu 官方仓库有 Docker,但版本通常较旧。为了获得最新的特性(特别是 Docker Compose V2)和安全性,强烈建议使用 Docker 官方仓库安装。

1. 安装必要依赖


sudo apt-get install -y ca-certificates curl gnupg

2. 添加 Docker 官方 GPG 密钥


sudo install -m 0755 -d /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o/etc/apt/keyrings/docker.gpgsudo chmod a+r /etc/apt/keyrings/docker.gpg

3. 设置仓库源


echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. 安装 Docker Engine


sudo apt-get updatesudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin



第三步:关键配置优化 (生产环境必备)

     安装完成后,我们需要做两件对未来维护至关重要的事情。

     1. 免 Sudo 执行 (方便管理)

     默认情况下运行 Docker 需要 sudo,这在脚本和日常操作中很不方便。


# 将当前用户加入 docker 用户组sudo usermod -aG docker $USER# 激活更改(或者退出 SSH 重连)newgrp docker

       测试:运行 docker ps,如果不报错,说明配置成功。

       2. 配置日志轮转与镜像加速

       这是新手最容易忽略的坑! 如果不配置日志轮转,Docker 容器的日志会无限增长,最终占满服务器硬盘。

   创建或编辑配置文件:


sudo mkdir -p /etc/dockersudo nano /etc/docker/daemon.json

写入以下内容:


{  "log-driver": "json-file",  "log-opts": {      "max-size": "20m",      "max-file": "3"  },  "registry-mirrors":   ["https://docker.m.daocloud.io",  "https://huecker.io"  ]}
  • log-opts: 每个容器日志最多 20MB,保留 3 个文件。
  • registry-mirrors: (可选) 如果服务器在国内,建议配置加速源;如果在海外,可删除此项。

重启 Docker 生效:


sudo systemctl daemon-reloadsudo systemctl restart docker


第四步:规划标准化的目录结构 (核心)

   为了实现“多应用、易扩展”,我们拒绝将容器文件散落在 /home/tmp 下。我们要建立一个统一的“基地”。

     建议在 /opt 目录下建立 docker-apps 文件夹,所有未来的应用都将“住”在这里。

1. 创建主目录


sudo mkdir -p /opt/docker-appssudo chown $USER:$USER /opt/docker-apps

2. 未来的目录结构预览这就是我们实现“易扩展”的秘诀。每个应用一个独立文件夹,包含自己的配置。


/opt/docker-apps/├── nginx-proxy/        <-- 未来:网关服务│   ├── docker-compose.yml│   └── data/├── talent-match/       <-- 应用A:相亲应用│   ├── docker-compose.yml│   ├── .env│   └── logs/└── blog-system/        <-- 应用B:博客系统    └── ...
      这样做的好处是:备份时,只需要把/opt/docker-apps 打包带走,所有数据就都备份好了。

第五步:创建专用网络 (为反向代理做准备)

     如果我们要在一台服务器上运行多个网站(如 a.com, b.com),我们需要一个“网关”容器(Nginx Proxy Manager)来统一管理流量。

     为了让网关能“看见”其他的应用容器,它们必须处于同一个 Docker 网络中。

创建一个名为 web_net 的外部网络:


docker network create web_net

验证:


docker network ls

哪怕现在还没部署应用,先把路修好,后面直接跑车。

总结与预告

至此,你的服务器已经拥有了一个健壮、干净且标准化的 Docker 环境:

  1. 安装了最新的 Docker Engine。
  2. 配置了自动日志清理,防止磁盘爆满。
  3. 建立了 /opt/docker-apps 统一目录结构。
  4. 铺设了 web_net 专用网络。

下一步:万事俱备,只欠东风。在下一篇文章中,我们将在这个环境中部署 Nginx Proxy Manager,并教你如何通过可视化的界面,轻松地将不同的域名(如 app.example.com)指向你刚刚部署好的不同容器,彻底告别繁琐的 Nginx 配置文件。

附录:常用命令速查卡

  • 启动所有容器(在项目目录下):docker compose up -d
  • 停止所有容器:docker compose down
  • 查看容器状态:docker ps -a
  • 查看容器日志:docker logs -f <容器名>
  • 查看资源占用:docker stats


本文内容仅供参考,不构成任何专业建议。使用本文提供的信息时,请自行判断并承担相应风险。

分享文章
合作伙伴

本站所有广告均是第三方投放,详情请查询本站用户协议