部署Docker看似简单,但很多人在实际操作中都会踩坑。本文从一个运维工程师的视角出发,围绕部署前如何规划、不同操作系统怎么选、网络怎么配、镜像加速怎么设、权限如何管理、以及部署后如何验证这六个核心环节,为你梳理一套真正可落地的Docker部署指南。

部署Docker前需要准备什么

很多新手拿到服务器就直接敲安装命令,结果不是内核版本太低,就是存储驱动不兼容。我处理过的故障里,有一半以上都源于前期准备不足。部署Docker前,你需要确认操作系统内核版本至少是3.10,推荐使用4.0以上,因为overlay2存储驱动需要这个门槛。

部署docker容器_部署docker需要哪些设备_部署docker

另外,服务器的时间同步和主机名解析也必须搞定。我见过太多因为NTP没配好导致容器日志时间错乱,或者/etc/hosts没配全导致跨容器通信失败的案例。花五分钟检查这些基础环境,远比出问题后再排查要高效。

生产环境用哪种安装方式最快

如果你只是本地测试,用官方脚本一键安装没问题。但生产环境我从不建议这么干部署docker,因为你根本不知道脚本从网上下载了什么版本,也没有留底做回滚的方案。我所在的团队现在全部采用离线包或配置本地Yum仓库的方式部署。

部署docker需要哪些设备_部署docker容器_部署docker

CentOS为例,先把docker-ce、containerd、docker-ce-cli三个RPM包下载到本地,搭建一个内网源,然后用yum install指定版本安装。这样做的好处是:版本可控、内网速度快、回滚时直接指定旧版本包就行。Ubuntu下则是deb包,思路完全一致。

如何正确配置镜像加速器

国内拉取Docker Hub镜像的速度直接影响部署效率,但很多人配了加速器依然慢红旗linux系统下载,甚至配错地址。其实加速器配置本身不复杂,关键在于选对服务商和写对路径。我建议优先用阿里云或中科大的加速器,前提是你得先去注册获取专属地址。

部署docker_部署docker需要哪些设备_部署docker容器

配置文件在/etc/docker/daemon.json部署docker,这里除了写registry-mirrors,我还习惯同时配insecure-registries和log-opts。前者是为了对接公司自建的Harbor仓库,后者是限制日志大小,避免/var/lib/docker把磁盘撑爆。配完后一定要systemctl reload docker而不是restart,否则运行中的容器会被强制干掉。

Docker服务起不来怎么排查

这是群里被问烂的问题,其实排查思路非常固定。首先看systemctl status docker,如果提示Failed to start,直接journalctl -xe看详细日志。我遇到最多的情况是selinux没关或者daemon.json语法错误。

还有一个容易被忽略的点:如果之前装过旧版本docker,卸载不干净会导致dockershim冲突。这时候需要手动删除/etc/docker目录和/var/lib/docker里的残留数据。另外,有时是containerd服务没启动,它和dockerd是独立的,必须保证containerd先跑起来。

部署docker容器_部署docker_部署docker需要哪些设备

普通用户运行docker要加sudo吗

很多运维图省事直接把开发加到docker组,然后普通用户就能免sudo跑容器了。这种做法方便是真方便,但安全风险也极高。加入docker组的用户相当于拥有root权限,他可以通过挂载宿主机根目录来读写任何文件。

我现在的做法是分两套环境:开发测试环境可以按需给docker组权限,方便调试;生产环境必须走审计流程linux系统安装,所有docker命令都用sudo配合日志记录执行,并且sudo权限也只开放给指定的几个运维账号。这不是折腾,而是防止误操作把宿主机文件删了。

部署完成后如何验证环境正常

部署docker_部署docker容器_部署docker需要哪些设备

装完docker第一件事不是跑nginx,而是跑hello-world。这能验证dockerd、containerd和内核模块是否协同工作。跑成功说明最基础的运行时没问题。接下来我会跑一个busybox容器,随便执行一条命令,测试交互式终端是否正常。

最后一步是验证网络。创建一个bridge模式的容器,检查是否能ping通外网,DNS解析是否生效。如果拉取镜像没问题但容器内无法联网,多半是宿主机防火墙或iptables规则被第三方工具改乱了。把以上三步走完,这套Docker环境才算真正合格,可以交付给业务方使用。

你在部署Docker的过程中踩过最深的坑是什么?是网络不通、存储爆满,还是某个版本的特殊Bug?欢迎在评论区分享你的经历,如果觉得本文对你有帮助,请点赞收藏,让更多同事看到这份实战总结。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复