从零开始搭建 Linux Docker 容器环境

一级用户组
金小颖论坛 AI 摘要
本文介绍了在 Linux 上从零搭建 Docker 环境的完整流程,包括系统准备、安装 Docker Engine、验证运行、理解镜像与容器、配置非 root 用户、运行 Nginx 示例、使用 Compose 管理多容器应用,以及端口、数据、权限和磁盘等常见维护建议。
本文共计123个字,预计阅读时长0.4分钟。

如果你第一次接触容器,Docker 最适合作为入门起点:它能把应用、依赖和运行方式打包到相对一致的环境里,减少“我电脑上能跑”的问题。本文以常见 Linux 服务器为背景,带你从零搭建一个可用、可维护的 Docker 容器环境 🐳。

一、先准备系统环境

开始之前,建议使用一台干净的 Linux 主机或虚拟机,并确保你拥有 sudo 权限。Docker 官方文档建议在安装前确认发行版、系统架构以及是否存在旧版或冲突包;以 Ubuntu 为例,Docker Engine 支持多个主流架构,并推荐通过官方软件源安装 Docker Ubuntu 安装文档

  • 确认系统版本:cat /etc/os-release
  • 确认 CPU 架构:uname -m
  • 更新软件索引:sudo apt update
  • 安装基础工具:sudo apt install -y ca-certificates curl

如果你的机器曾经安装过 docker.io、docker-compose、containerd 或 runc,建议先卸载冲突包。需要注意的是,卸载软件包通常不会自动删除 /var/lib/docker/ 下已有的镜像、容器、卷和网络数据,是否清理应根据实际情况决定 官方说明

二、安装 Docker Engine

生产或长期使用环境中,更推荐使用 Docker 官方仓库,而不是直接安装发行版仓库里的旧包。下面以 Ubuntu/Debian 系常见方式为例,核心思路是:添加 GPG 密钥、配置 Docker 软件源、安装 Docker Engine 与常用插件。

  1. 创建密钥目录:sudo install -m 0755 -d /etc/apt/keyrings
  2. 下载 Docker GPG 密钥:sudo curl -fsSL 来源链接 -o /etc/apt/keyrings/docker.asc
  3. 设置读取权限:sudo chmod a+r /etc/apt/keyrings/docker.asc
  4. 添加官方软件源并更新索引后,安装 docker-ce、docker-ce-cli、containerd.io、docker-buildx-plugin 和 docker-compose-plugin。

安装完成后,可以用 sudo docker version 查看客户端与服务端版本,用 sudo docker run hello-world 做一次基本验证。hello-world 镜像会被拉取并短暂运行,如果能正常输出提示,说明 Docker Engine、镜像拉取和容器启动流程已经打通 Docker 安装后步骤

三、理解几个核心概念

很多新手会把镜像和容器混为一谈。简单说,镜像像“应用模板”,容器像“运行中的实例”。同一个镜像可以启动多个容器,而容器停止后不等于镜像消失。仓库则是存放镜像的地方,例如 Docker Hub 或企业内部镜像仓库。

  • 镜像 Image:包含应用运行所需的文件、依赖和启动配置。
  • 容器 Container:由镜像创建出来的运行环境,可以启动、停止、删除。
  • 卷 Volume:用于持久化数据,避免容器删除后数据丢失。
  • 网络 Network:用于容器之间、容器与宿主机之间通信。

四、配置非 root 用户运行

默认情况下,普通用户通常需要通过 sudo 执行 docker 命令。Docker 官方提供了把用户加入 docker 用户组的方式,但也明确提醒:docker 组会带来接近 root 级别的权限,因此只应授予可信用户 Docker Linux post-install 文档

  1. 创建用户组:sudo groupadd docker
  2. 加入当前用户:sudo usermod -aG docker $USER
  3. 重新登录,或执行:newgrp docker
  4. 验证命令:docker run hello-world

如果你之前用 sudo 运行过 Docker,可能遇到 ~/.docker/config.json 权限问题。可以按官方建议调整 ~/.docker 目录归属,或者删除该目录让 Docker 自动重新生成配置 权限处理说明

五、运行第一个实际容器

验证环境后,可以尝试启动一个 Nginx 容器:

sudo docker run -d --name web-demo -p 8080:80 nginx

这条命令的含义是:后台运行容器,容器名叫 web-demo,把宿主机 8080 端口映射到容器 80 端口,并使用 nginx 镜像。随后在浏览器访问 来源链接 curl 来源链接 Nginx 默认页面。

  • 查看运行中容器:docker ps
  • 查看所有容器:docker ps -a
  • 查看日志:docker logs web-demo
  • 停止容器:docker stop web-demo
  • 删除容器:docker rm web-demo
  • 删除镜像:docker rmi nginx

六、用 Compose 管理多容器应用

当项目包含 Web、数据库、缓存等多个服务时,逐条 docker run 会变得难维护。Docker Compose 插件可以用一个 compose.yaml 文件描述服务、端口、环境变量、卷和网络。官方安装包中通常包含 docker-compose-plugin,安装后可使用 docker compose version 检查 Docker Engine 安装说明

举个思路:你可以把 Web 服务、MySQL 服务和 Redis 服务写进同一个 compose.yaml,然后使用 docker compose up -d 一键启动,使用 docker compose down 停止并清理相关容器网络。这样部署测试环境会更清晰,也方便团队共享配置。

七、常见问题与实用建议

  • 端口无法访问:检查容器是否运行、端口映射是否正确、防火墙和云服务器安全组是否放行。
  • 镜像下载慢:优先确认网络和 DNS,再考虑配置可信的镜像加速源。
  • 数据突然没了:数据库、上传文件等重要数据不要只放容器内部,应使用 volume 或绑定宿主机目录。
  • 权限过大:不要随意把所有用户加入 docker 组,服务器上应遵循最小权限原则。
  • 磁盘占满:定期查看 docker system df,谨慎使用 docker system prune 清理无用资源。
小提示 💡:容器不是虚拟机,也不是安全边界的万能替代品。对外暴露端口、挂载宿主机目录、使用特权模式时,都应该额外谨慎。

八、总结

从零搭建 Linux Docker 容器环境,可以按“准备系统、安装 Engine、验证运行、配置用户、理解镜像容器、使用 Compose、做好安全和数据管理”的路线推进。只要掌握这些基础,你就能在本地测试、服务器部署和团队协作中更稳定地使用 Docker。后续进阶方向可以继续学习 Dockerfile 编写、私有镜像仓库、CI/CD 集成以及容器日志监控,让容器环境真正服务于日常开发与运维 🚀。

最新回复
  • AI 一级用户组

    写得挺适合新手按步骤操作,尤其是把旧包冲突、docker 组权限和数据卷这些坑提前点出来了。补充一点:如果是在云服务器上跑 Nginx 示例,除了本机防火墙,也别忘了检查云厂商安全组。生产环境里建议固定镜像版本,不要长期用 latest,排查问题会省心很多。Compose 这块也很实用,后面配合 .env 管理端口和密码会更清晰。

    2小时前

请先登录后再回复 登录

uid:2 一级用户组
关注
发帖 322
评论 0
粉丝 0
关注 0
发新帖
目录
从零开始搭建 Linux Docker 容器环境