当前位置: 首页 > news >正文

Docker 学习篇(三)| Docker安装指南(Linux版)

Docker 学习篇(三)| Docker安装指南(Linux版)

  • 1. 安装前准备
  • 2. 方式一:在线安装
    • 2.1 卸载旧版本
    • 2.2 安装依赖
    • 2.3 配置 Docker 源(阿里云)
    • 2.4 安装 Docker Engine
    • 2.5 安装 Compose 插件
  • 3. 方式二:离线安装
    • 3.1 下载离线包
    • 3.2 上传到服务器
    • 3.3 解压安装
    • 3.4 注册为系统服务
  • 4. 启动 Docker
  • 5. 验证
  • 6. 配置镜像加速
  • 7. 防火墙
  • 8. SELinux(CentOS 特有)
  • 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-broken
  • yum-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-i's/download.docker.com/mirrors.aliyun.com\/docker-ce/g'\/etc/yum.repos.d/docker-ce.repo# 更新缓存yum makecache

第三步yum makecache报黄色警告可以忽略,红色报错才要处理。

2.4 安装 Docker Engine

yuminstall-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.service<<'EOF' [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-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-worldpermission denied:执行sudo usermod -aG docker $USER,然后退出终端重新登录(必须退出再登录,不退出不生效),再试。


6. 配置镜像加速

国内需要配镜像加速,否则拉镜像极慢。

# 创建配置目录mkdir-p/etc/docker# 写入配置文件cat>/etc/docker/daemon.json<<'EOF' { "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 Hub
data-root镜像和数据存哪。系统盘满了换大磁盘路径
log-driver+log-opts每个容器日志最多 10MB、保留 3 个文件,防止日志撑爆磁盘

验证加速器:

dockerpull hello-world# 速度明显快了就是生效了dockerrmi hello-world

不要加docker.xuanyuan.me——在 Docker 26+ 上会报content size of zero错误。


7. 防火墙

# 根据需要开放对外端口firewall-cmd--zone=public --add-port=80/tcp--permanentfirewall-cmd--zone=public --add-port=443/tcp--permanentfirewall-cmd--zone=public --add-port=8080/tcp--permanent# 重载firewall-cmd--reload# 确认firewall-cmd --list-ports

容器之间的通信不需要手动开端口,Docker 自己管理 iptables。


8. SELinux(CentOS 特有)

SELinux 可能会阻止容器访问文件或网络。

检查状态:

getenforce

如果显示Enforcing,可以选择:

# 临时关闭(重启后恢复)setenforce0# 或永久关闭sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config

个人服务器或开发环境可以直接关。生产环境如果不方便关,启动容器时加--security-opt label=disable


9. 常用管理命令

systemctl startdocker# 启动systemctl stopdocker# 停止systemctl restartdocker# 重启systemctlenabledocker# 开机自启systemctl statusdocker# 查看状态systemctl daemon-reload# 改完配置重载

10. 安装中可能遇到的问题

现象原因解决
yum install docker-ce找不到包阿里云源没配好重做第 2.3 步,确认yum repolist里有 docker
docker-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.jsondata-root改到大磁盘路径
http://www.jsqmd.com/news/766712/

相关文章:

  • 黑苹果网络驱动终极指南:从零开始实现Wi-Fi与蓝牙完美适配
  • 基于企业微信的私有化AI助手部署:安全接入ChatGPT与Gemini
  • BLE广播包与扫描响应实战:如何让你的智能设备被手机“秒发现”?
  • 2026年防静电地板成机房刚需:核心价值与应用优势解析 - 小艾信息发布
  • 核心组件大换血:Backbone与Neck魔改篇:YOLO26结合Inception-NeXt主干:大核卷积与多分支结构的现代复兴
  • SAM 2的‘记忆’机制拆解:它如何让AI像人一样记住视频里的物体?
  • 移动端 sticky 吸顶圆角被内容盖成直角的踩坑
  • AI 后台任务调度成功但未执行:从链路追踪到巡检策略的稳定性治理实践
  • 从游戏到编程思维:我是如何用ICode Python训练场带娃搞定‘综合练习5’的
  • 如何快速搭建企业微信消息推送服务:Wecom酱完整指南
  • CodeFormer不止能修脸:探索Python AI模型在老旧视频修复、动漫截图增强上的隐藏玩法
  • 掌握IAPWS热力学计算:Python水蒸气物性计算的完整指南
  • 质量工程师实战指南:如何在Minitab/JMP中快速计算并解读CgCgk(以检具GRR分析为例)
  • 从ElementUI到uni-ui:手把手教你为uni-datetime-picker移植‘禁用日期‘功能
  • 通过模型广场对比主流模型特性并选择适合当前任务的模型进行调用
  • 喜马拉雅音频下载器:三步轻松保存VIP与付费专辑到本地
  • 明日方舟基建自动化管理:从手动烦恼到智能管家
  • 八大网盘直链下载助手:告别限速,极速下载完整指南
  • 国产化替代实战:手把手教你用瑞芯微RK3399+紫光同创FPGA搭建VME总线控制器
  • 告别Charles!用Python神器mitmproxy在Windows上抓包模拟器App,保姆级配置避坑指南
  • 任天堂Switch屏幕色彩优化终极指南:Fizeau让你的游戏画面更生动
  • 如何彻底清理macOS应用残留文件?专业开源工具Pearcleaner使用指南
  • 别让PlatformNotSupportedException坑了你!.NET跨平台开发中的5个真实踩坑案例与解决方案
  • AI工具搭建自动化视频生成数学运算节点
  • 独立开发者如何借助Taotoken透明计费管理个人AI项目支出
  • 告别枯燥理论:手把手教你用CD4029和74系列芯片‘搭’出一个会报时的时钟(课程设计神器)
  • 2026.5.6
  • 使用 Taotoken 的模型广场在 Ubuntu 开发中快速选型与切换 AI 模型
  • 《源·觉·知·行·事·物:生成论视域下的统一认知语法》第十三章 知的净化:从妄知到真知
  • MCP 2026边缘部署性能跃迁:从47ms到8.3ms——实测7类硬件适配+3层缓存协同调优全路径