Docker安装配置全教程(含银河麒麟服务器部署+镜像加速)

前言:Docker作为当下最流行的容器化技术,凭借"一次构建、到处运行"的核心优势,成为DevOps、云部署的必备工具。本文将从Docker基础概念入手,详细讲解Docker的安装、用户组配置、镜像加速器配置,重点补充银河麒麟服务器的专属部署方案(解决官方版本过旧问题),全程实操无冗余,新手也能快速上手。

一、Docker基础概念(新手必看)

1. Docker的由来

在Docker出现之前,开发者面临一个核心痛点:应用程序在开发环境能正常运行,但部署到测试、生产环境后,常会因依赖环境、系统配置差异出现"运行失败"的问题,即"环境一致性"难题。2013年,Docker正式开源,其核心目标就是解决这一痛点------通过容器化技术,将应用程序及其依赖的库、配置文件等打包成一个可移植的容器,实现"一次构建,处处运行",极大降低了部署成本和环境适配难度。

2. Docker与传统虚拟机性能对比

很多新手会混淆Docker容器与传统虚拟机,两者在性能上有本质区别,具体对比如下:

  • 启动速度:Docker容器启动时间以秒为单位(通常1-5秒),传统虚拟机启动需几分钟(需加载完整操作系统);

  • 资源占用:Docker容器共享宿主机内核,无需占用额外的内存、CPU资源(轻量化,单机可运行上千个容器),传统虚拟机需分配独立的内存、CPU,资源占用高(单机仅能运行几十个);

  • 磁盘占用:Docker容器镜像体积小(通常几MB到几十MB),传统虚拟机镜像体积大(通常几GB到几十GB);

  • 性能损耗:Docker容器几乎无性能损耗(直接调用宿主机内核),传统虚拟机因虚拟化层存在,性能损耗约10%-20%。

3. Docker与传统虚拟机架构对比

架构上的差异,决定了两者的性能差距:

  • 传统虚拟机:架构从下到上依次为「硬件 → 宿主机操作系统 → 虚拟化层(如VMware、VirtualBox) → 多个客户机操作系统 → 应用程序」。每个虚拟机都有独立的操作系统,虚拟化层负责隔离和资源分配,冗余度高。

  • Docker容器:架构从下到上依次为「硬件 → 宿主机操作系统 → Docker引擎 → 多个容器 → 应用程序」。容器无需独立操作系统,共享宿主机内核,Docker引擎负责容器的隔离、调度和资源分配,轻量化且高效。

4. 如何理解Docker

Docker的基础理念是:打包应用以及依赖环境到一个可移植的容器中,然后发布到任何平台的主机(Linux、Windows、MacOS)上都能正常运行。

想要搞懂Docker,记住它的两句核心口号就够了:

  • 第一句:"Build, Ship and Run"(搭建、发送、运行)------ 开发者搭建应用环境并打包成镜像,通过网络发送到目标主机,在目标主机上直接运行容器;

  • 第二句:"Build once,Run anywhere"(一次构建,到处运行)------ 解决环境不一致问题,无论目标主机是开发机、测试机还是生产机,只要安装了Docker,就能运行容器。

5. 容器技术发展的几个方向

随着容器技术的普及,其发展方向主要集中在4个方面:

  • 容器编排标准化:以Kubernetes(K8s)为核心,实现多容器、多主机的统一调度、扩容、运维,成为容器编排的行业标准;

  • 轻量化与安全加固:容器镜像进一步轻量化(如Distroless镜像),同时加强容器隔离、权限控制,提升生产环境的安全性;

  • 云原生深度融合:与云服务(公有云、私有云)深度结合,实现容器的弹性伸缩、按需分配资源,降低云部署成本;

  • 多平台适配:完善对ARM架构、国产操作系统(如银河麒麟、统信UOS)的支持,满足国产化部署需求。

二、通用Linux系统(CentOS系列)Docker安装与配置

本节适用于CentOS 7/8等通用Linux系统,全程使用yum在线安装,步骤简单易操作。

1. 安装Docker CE(社区版)

首先安装依赖包,确保yum能正常添加软件源并安装Docker:

复制代码
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

添加阿里云Docker软件源(国内源,下载速度更快,避免官方源卡顿):

复制代码
[root@localhost ~]# yum-config-manager  --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum缓存并安装Docker CE:

复制代码
[root@localhost ~]# yum makecache fast
[root@localhost ~]# yum install docker-ce

安装完成后,启动Docker并设置开机自启:

复制代码
[root@localhost ~]# systemctl enable docker  # 设置开机自启
[root@localhost ~]# systemctl start docker   # 启动Docker服务

2. 建立Docker用户组(安全优化)

默认情况下,Docker命令需使用root用户执行(因为Docker引擎的Unix socket仅对root用户和docker组开放)。出于安全考虑,不建议直接使用root用户操作Docker,因此需创建docker用户组,并将当前用户加入组中。

复制代码
[root@localhost ~]# groupadd docker  # 建立docker用户组
[root@localhost ~]# usermod -aG docker $USER  # 将当前用户加入docker组

注意:添加用户组后,需重新登录终端,权限才能生效。

3. 测试Docker安装是否成功

通过运行官方的hello-world镜像,验证Docker是否能正常拉取镜像并运行容器:

复制代码
[root@localhost ~]# docker run hello-world

若终端输出"Hello from Docker!"相关信息,说明Docker安装成功;若拉取镜像失败,可先配置镜像加速器(见下文),再重新测试。

4. 配置Docker镜像加速器(国内必做)

国内从Docker Hub拉取镜像时,因网络原因常出现卡顿、超时问题,配置镜像加速器可大幅提升下载速度。本文提供6个可用的国内加速器(亲测有效),步骤如下:

第一步:创建Docker配置目录(若已存在则跳过):

复制代码
[root@localhost ~]# mkdir /etc/docker

第二步:创建并编辑daemon.json配置文件(核心配置文件):

复制代码
[root@localhost ~]# vim /etc/docker/daemon.json

第三步:写入以下内容(确保JSON格式规范,否则Docker无法启动):

复制代码
{
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://proxy.1panel.live",
        "https://docker.xuanyuan.me",
        "https://docker.m.daocloud.io",
        "https://docker.rainbond.cc",
        "https://docker.1panel.live"
    ]
}

第四步:重新加载Docker配置并重启服务,使加速器生效:

复制代码
[root@localhost ~]# systemctl daemon-reload  # 重新加载配置
[root@localhost ~]# systemctl restart docker  # 重启Docker服务

验证加速器是否生效:执行以下命令,若输出中包含配置的加速器地址,说明配置成功:

复制代码
[root@localhost ~]# docker info

补充说明:若配置后拉取镜像仍缓慢,可将系统DNS修改为8.8.8.8(谷歌公共DNS),解决网络解析问题。

三、银河麒麟服务器Docker部署(重点)

银河麒麟服务器作为国产操作系统,直接使用yum安装Docker会出现"官方版本过旧"的问题,推荐使用二进制文件安装,步骤如下(全程实操,适配银河麒麟全系列)。

1. 下载Docker二进制包

从阿里云镜像源下载指定版本的Docker二进制包(本文以docker-23.0.6版本为例,稳定且适配银河麒麟,可根据需求选择其他版本):

复制代码
[root@kylinserver data]# wget https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-23.0.6.tgz

补充:若wget命令未安装,可先执行yum install -y wget安装;若下载失败,可直接访问阿里云Docker二进制包地址,手动下载对应版本后上传至服务器。

2. 解压并部署二进制文件

将下载的压缩包解压,并将解压后的文件复制到/usr/local/bin目录(系统可执行目录,确保Docker命令全局可用):

复制代码
[root@kylinserver data]# tar -zxvf docker-23.0.6.tgz  # 解压压缩包
[root@kylinserver data]# cd docker  # 进入解压后的目录
[root@kylinserver docker]# cp * /usr/local/bin  # 复制所有可执行文件到系统目录

3. 配置Docker系统服务

二进制安装的Docker需手动配置系统服务,才能通过systemctl命令管理(启动、停止、开机自启),步骤如下:

第一步:创建Docker服务配置文件:

复制代码
[root@kylinserver docker]# vim /usr/lib/systemd/system/docker.service

第二步:写入以下服务配置内容(复制粘贴即可,无需修改):

复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service time-set.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/local/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500

[Install]
WantedBy=multi-user.target

4. 配置镜像加速器(与通用系统一致)

银河麒麟服务器同样需要配置镜像加速器,解决国内拉取镜像慢的问题,步骤与前文一致:

复制代码
[root@kylinserver data]# mkdir /etc/docker  # 若已存在则跳过
[root@kylinserver data]# vim /etc/docker/daemon.json

写入加速器配置(与通用系统相同):

复制代码
{
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://proxy.1panel.live",
        "https://docker.xuanyuan.me",
        "https://docker.m.daocloud.io",
        "https://docker.rainbond.cc",
        "https://docker.1panel.live"
    ]
}

5. 启动Docker并验证

配置完成后,重新加载系统服务,启动Docker并设置开机自启,最后验证版本:

复制代码
[root@kylinserver data]# systemctl daemon-reload  # 重新加载服务配置
[root@kylinserver data]# systemctl enable docker  # 设置开机自启
[root@kylinserver data]# systemctl start docker   # 启动Docker服务
[root@kylinserver data]# docker -v  # 验证Docker版本

若终端输出类似"Docker version 23.0.6, build 191d714"的信息,说明银河麒麟服务器Docker部署成功。

四、常见问题排查(避坑指南)

  • 问题1:Docker启动失败,提示"daemon.json格式错误"------ 检查daemon.json文件,确保括号、逗号格式正确,无多余空格(JSON格式严格,建议使用在线JSON校验工具验证)。

  • 问题2:拉取镜像超时,加速器配置后仍无效------ 检查网络是否正常,可尝试ping docker.1ms.run,若无法ping通,修改DNS为8.8.8.8;同时确认daemon.json配置正确,重启Docker服务后重新验证。

  • 问题3:银河麒麟服务器解压二进制包后,docker命令无法执行 ------ 确认解压后的文件已复制到/usr/local/bin目录,可执行ls /usr/local/bin | grep docker,查看是否有docker、dockerd等可执行文件。

  • 问题4:非root用户无法执行docker命令------ 确认已将该用户加入docker用户组,且重新登录终端(权限生效需重新登录)。

五、总结

本文涵盖了Docker从基础概念到实操部署的全流程,适用于通用Linux系统和银河麒麟国产服务器,重点解决了"国内镜像拉取慢""银河麒麟官方版本过旧"两个核心痛点。通过本文的步骤,你可以快速完成Docker的安装、配置和验证,为后续容器化部署(如Nginx、MySQL、Java应用等)打下基础。

如果觉得本文有用,欢迎点赞、收藏,关注我获取更多Docker、K8s、国产服务器部署相关实操教程~

相关推荐
XIAOHEZIcode10 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
武子康1 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化