Docker 学习篇三| Docker安装指南Linux版1. 安装前准备2. 方式一在线安装2.1 卸载旧版本2.2 安装依赖2.3 配置 Docker 源阿里云2.4 安装 Docker Engine2.5 安装 Compose 插件3. 方式二离线安装3.1 下载离线包3.2 上传到服务器3.3 解压安装3.4 注册为系统服务4. 启动 Docker5. 验证6. 配置镜像加速7. 防火墙8. SELinuxCentOS 特有9. 常用管理命令10. 安装中可能遇到的问题1. 安装前准备以 root 或 sudo 用户登录服务器执行以下检查# 1. 确认系统版本cat/etc/redhat-release# 应显示 CentOS Linux release 7.x 或 8.x# 2. 确认网络在线安装需要ping-c2mirrors.aliyun.com# 收到回复说明网络通# 3. 确认是 root 或有 sudo 权限whoami# 非 root 的话后面每条命令前加 sudo# 4. 查看架构离线安装需要uname-m# 结果是 x86_64如果前三步都过了直接跳到第 2 节在线安装。如果服务器没网跳到第 3 节离线安装。2. 方式一在线安装2.1 卸载旧版本如果之前装过 Docker先清干净yum remove-y\docker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-selinux\docker-engine-selinux\docker-engine\docker-ce\2/dev/null末尾2/dev/null的意思是没找到旧包也不报错忽略即可。不用管输出。2.2 安装依赖yuminstall-yyum-utils device-mapper-persistent-data lvm2 --skip-brokenyum-utils提供yum-config-manager下一步配置仓库要它--skip-broken遇到有问题的包跳过不卡住安装2.3 配置 Docker 源阿里云国内用阿里云源不然下载极慢# 添加仓库yum-config-manager --add-repo\https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 替换下载地址为阿里云sed-is/download.docker.com/mirrors.aliyun.com\/docker-ce/g\/etc/yum.repos.d/docker-ce.repo# 更新缓存yum makecache第三步yum makecache报黄色警告可以忽略红色报错才要处理。2.4 安装 Docker Engineyuminstall-ydocker-ce装完确认docker-v# 输出示例Docker version 26.1.4, build 5650f9b只要有版本号输出就是装好了。2.5 安装 Compose 插件yuminstall-ydocker-compose-plugin确认dockercompose version# 输出示例Docker Compose version v2.27.1如果提示找不到这个包先装 EPEL 源yum install -y epel-release然后重试。3. 方式二离线安装3.1 下载离线包找一台有网的电脑打开 Docker 静态安装包下载最新的.tgz文件。3.2 上传到服务器用 FinalShell、宝塔面板或 scp 把.tgz传到服务器。放哪里都行下面以/data/为例。3.3 解压安装mkdir-p/datacd/data/# 版本号换成你实际下载的文件名tar-xfdocker-26.1.4.tgz# 把所有 Docker 命令移到系统目录mvdocker/* /usr/bin/确认docker-v# 能输出版本号就说明文件到位了3.4 注册为系统服务cat/usr/lib/systemd/system/docker.serviceEOF [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target [Service] Typenotify ExecStart/usr/bin/dockerd ExecReload/bin/kill -s HUP $MAINPID LimitNOFILEinfinity LimitNPROCinfinity LimitCOREinfinity TimeoutStartSec0 Delegateyes KillModeprocess Restarton-failure StartLimitBurst3 StartLimitInterval60s [Install] WantedBymulti-user.target EOFsystemctl daemon-reload离线安装不包含 Compose 插件。如需用docker compose去 GitHub Releases 下载docker-compose-linux-x86_64放入/usr/libexec/docker/cli-plugins/目录并chmod x。4. 启动 Docker不管在线还是离线安装接下来操作都一样。# 启动systemctl startdocker# 设置开机自启systemctlenabledocker# 查看状态systemctl statusdocker看到Active: active (running)就是成功了。5. 验证# 版本检查docker-v# 拉一个测试镜像dockerrun hello-world看到Hello from Docker!就说明 Docker 完全装好了。离线安装注意离线环境下docker run hello-world会因为拉不到镜像而失败用docker -v确认版本即可。离线拉镜像的方式见第五篇命令速查的docker load -i。# 验证 Compose在线安装才有dockercompose version# 删掉测试镜像dockerrmi hello-world如果docker run hello-world报permission denied执行sudo usermod -aG docker $USER然后退出终端重新登录必须退出再登录不退出不生效再试。6. 配置镜像加速国内需要配镜像加速否则拉镜像极慢。# 创建配置目录mkdir-p/etc/docker# 写入配置文件cat/etc/docker/daemon.jsonEOF { registry-mirrors: [ https://docker.1ms.run, https://docker.m.daocloud.io ], data-root: /data/docker/lib, log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } } EOF# 重载并重启systemctl daemon-reload systemctl restartdocker配置说明字段作用registry-mirrors告诉 Docker 从这些镜像站拉而不是直连 Docker Hubdata-root镜像和数据存哪。系统盘满了换大磁盘路径log-driverlog-opts每个容器日志最多 10MB、保留 3 个文件防止日志撑爆磁盘验证加速器dockerpull hello-world# 速度明显快了就是生效了dockerrmi hello-world不要加docker.xuanyuan.me——在 Docker 26 上会报content size of zero错误。7. 防火墙# 根据需要开放对外端口firewall-cmd--zonepublic --add-port80/tcp--permanentfirewall-cmd--zonepublic --add-port443/tcp--permanentfirewall-cmd--zonepublic --add-port8080/tcp--permanent# 重载firewall-cmd--reload# 确认firewall-cmd --list-ports容器之间的通信不需要手动开端口Docker 自己管理 iptables。8. SELinuxCentOS 特有SELinux 可能会阻止容器访问文件或网络。检查状态getenforce如果显示Enforcing可以选择# 临时关闭重启后恢复setenforce0# 或永久关闭sed-is/SELINUXenforcing/SELINUXdisabled/g/etc/selinux/config个人服务器或开发环境可以直接关。生产环境如果不方便关启动容器时加--security-opt labeldisable。9. 常用管理命令systemctl startdocker# 启动systemctl stopdocker# 停止systemctl restartdocker# 重启systemctlenabledocker# 开机自启systemctl statusdocker# 查看状态systemctl daemon-reload# 改完配置重载10. 安装中可能遇到的问题现象原因解决yum install docker-ce找不到包阿里云源没配好重做第 2.3 步确认yum repolist里有 dockerdocker-compose-plugin找不到缺 EPEL 源yum install -y epel-release后重试docker run hello-world卡住不动镜像加速没配或没重启重做第 6 步permission denied while trying to connect当前用户不在 docker 组sudo usermod -aG docker $USER退出重新登录docker run hello-world报网络错误加速器配了但镜像源挂了换成另一个镜像源试试容器不能访问磁盘目录SELinux 挡住了参考第 8 步磁盘空间不足镜像和数据占满了系统盘daemon.json里data-root改到大磁盘路径