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、国产服务器部署相关实操教程~

相关推荐
春生野草1 小时前
Socket、Servlet、Tomcat
运维·服务器·网络
kvnew1 小时前
Ubuntu 26.04 一键安装/修复拼音输入法fcitx5+Rime
linux·运维·ubuntu
Komorebi_99991 小时前
Day3:监控、日志、限流、成本管控、版本灰度
大数据·运维·人工智能·大模型
ITyunwei09871 小时前
运维团队如何抓住AI?
大数据·运维·人工智能
小则又沐风a1 小时前
进程篇: 进程概念的补充(了解环境变量和虚拟地址空间)
linux·运维·服务器·c++
艾莉丝努力练剑1 小时前
【Linux网络】Linux 网络编程:传输层协议TCP(五)
linux·运维·网络·计算机网络·udp
晚风吹红霞1 小时前
进程调度深度解析:从优先级到O(1)调度算法
linux·运维
say_fall1 小时前
深入理解Linux内核进程调度:从基础概念到O(1)调度算法
linux·运维·服务器·算法·计算机组成
青梅橘子皮1 小时前
Linux---命令行参数和环境变量
linux·运维·服务器