news 2026/5/6 23:54:34

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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改到大磁盘路径
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 23:53:38

VSCode + MinGW + CMake:一个命令搞定编译,别再手动敲mingw32-make了

VSCode MinGW CMake&#xff1a;告别mingw32-make的Windows编译优化指南 对于习惯Linux开发的C程序员来说&#xff0c;Windows环境下最令人抓狂的瞬间莫过于在终端输入make后看到"command not found"的报错。这背后是MinGW工具链在Windows平台的特殊实现方式——它…

作者头像 李华
网站建设 2026/5/6 23:52:35

Go语言构建Webhook转发桥梁:解决内网穿透,实现自动化流程

1. 项目概述&#xff1a;一个轻量级的Webhook转发桥梁如果你在开发微服务、自动化流程&#xff0c;或者正在折腾各种SaaS工具之间的联动&#xff0c;那你一定对Webhook不陌生。简单来说&#xff0c;Webhook就是一种“反向API”&#xff0c;它允许一个应用在特定事件发生时&…

作者头像 李华
网站建设 2026/5/6 23:49:40

实测ME6211C18M5G-N这颗1.8V LDO:5V转1.8V,带载250mA到底稳不稳?

ME6211C18M5G-N LDO深度实测&#xff1a;5V转1.8V的250mA负载稳定性全解析 在嵌入式系统和低功耗设计中&#xff0c;LDO&#xff08;低压差线性稳压器&#xff09;的选择往往决定着整个系统的电源稳定性。南京微盟电子的ME6211C18M5G-N作为一款标称输出1.8V、最大电流300mA的LD…

作者头像 李华
网站建设 2026/5/6 23:47:43

3分钟搞定B站缓存视频转换:永久珍藏你的数字回忆

3分钟搞定B站缓存视频转换&#xff1a;永久珍藏你的数字回忆 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是不是也遇到过这样的烦恼&#x…

作者头像 李华