docker概念、安装与基本使用

 更新时间:2025年09月24日 09:21:03   作者:Code Rhythm  
Docker是容器化平台,解决软件部署环境不一致、资源浪费等问题,通过轻量级容器实现快速部署与弹性扩展,对比虚拟机,其资源占用更低、启动更快,支持微服务架构与云原生技术,兼容多种操作系统,安装步骤在不同Linux系统中略有差异

一、概念

1.1 docker是什么?

就是一个软件,跑容器的软件 -> 容器化软件

有什么作用,解决了什么问题?

  • 将任何软件都可以放到容器里去运行
  • 更加节约企业的服务器资源,降低基础设施成本
  • 软件的快速部署和缩放 --》改变了软件部署和安装的方式

1.2 什么是容器?

类似软件的集装箱
官方网站:https://www.docker.com/resources/what-container/

使用容器的好处:
1.成本低廉
2.管理方便

颗粒度更加小的虚拟化技术–》容器技术–》可以控制资源

很多企业里的物理机的资源使用率比较低,一个业务一群机器,导致大量的资源浪费,成本过高

docker技术可以控制资源的使用率,可以让物理机很饱和的运行 --》减少机器的数量,同时业务也能正常的运行
使用docker可以降低基础设施成本

1.3 docker与虚拟机的区别

特性容器化(Docker)虚拟机(Hypervisor)
隔离层级进程级隔离(共享宿主 OS 内核)硬件级隔离(每个 VM 有独立 OS 内核)
隔离策略HypervisorCGroups
资源占用极轻量(MB 级,仅需应用自身资源)重量级(GB 级,需承载完整 OS 资源)
启动速度秒级(直接启动应用进程)分钟级(需启动完整 OS)
多应用支持同一宿主 OS 下可运行多个不同应用容器每个 VM 通常运行一个主要应用(因 OS 资源占用高)
兼容性依赖宿主 OS 内核(如 Linux 容器难跑 Windows 应用)支持任意 OS(只要 Hypervisor 兼容)
镜像存储KB-MBGB-TB
集群规模上万上百
高可用策略弹性、负载、动态备份、容灾、迁移

1.4 容器,镜像,仓库

  • 镜像: image 是软件单元,本质上是一个文件,文件里面有应用程序代码(nginx、mysql等)、微型操作系统、依赖软件 --》需要运行软件
  • 仓库: repository 存放镜像的地方, hub.docker.com
    hub.docker.com 是docker官方提供的镜像的集市。 全球最大的镜像集散地
  • 镜像仓库: 国内的站点 --》网站,提供镜像下载功能
  • 容器: container 运行的镜像,本质上是一个进程,提供服务

1.5 微服务、云计算

微小的服务:尽量的将某个功能或者服务独立出来,跑在单独的容器里,且可独立开发、测试、部署和扩展

微服务的核心特征

  • 单一职责:每个服务只负责一个业务模块
  • 独立部署:修改一个服务时,无需重新部署整个应用
  • 技术多样性:不同服务可选择适合自身的技术栈
  • 弹性扩展:可针对高负载服务单独扩容

微服务架构虽然解决了单体应用的耦合问题,但也带来了部署复杂、环境不一致、资源管理难等挑战 —— 而 Docker 恰好能针对性解决这些问题

微服务面临的挑战Docker 的解决方案核心价值
环境不一致(“开发能跑,生产报错”)容器打包应用 + 依赖,确保所有环境镜像一致消除 “环境差异”,降低部署故障
服务部署复杂(需手动配置依赖、端口)通过 Dockerfile 自动化构建镜像,Compose 一键部署多服务标准化部署流程,提升效率
资源隔离差(多服务共享主机资源,易冲突)容器间资源隔离(CPU、内存、网络),互不干扰避免 “服务抢占资源”,提升系统稳定性
服务扩容慢(需手动搭建新主机环境)容器轻量(启动秒级),可快速复制镜像启动新容器支持 “秒级扩容”,应对流量峰值
版本管理难(多服务版本迭代,回滚复杂)镜像版本化,回滚时只需切换镜像版本简化版本管理,降低回滚风险

云计算(Cloud Computing)

物理机–》虚拟化–》云计算–》云服务–》容器–》云原生
云原生: 就是与容器、k8s、Prometheus、etcd相关的技术

云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备

云计算利用强大的分布式计算和存储能力,将数据和应用程序从本地计算机或服务器转移到云中,使得用户可以随时随地获取所需的信息和服务

  • 公有云: 阿里云、腾讯云、华为云、AWS(亚马逊)、google云、微软云azure、电信云
  • 买服务器
  • 私有云/专有云: 自己使用不与其他人分享的云平台 --》购买阿里云/腾讯云、华为云的云平台软件,自己的服务器
  • 国家电网、财通证券
  • 政府、国企
  • 混合云: 公有云、私有云
  • 12306 购买火车票
服务模式英文全称核心定义用户视角典型场景
IaaSInfrastructure as a Service(基础设施即服务)提供最底层的 IT 基础设施:虚拟服务器(ECS)、存储(OSS)、网络(VPC)等,用户需自行部署操作系统、数据库、应用程序租用一台虚拟电脑,自己装系统和软件企业搭建自有服务器集群、开发测试环境
PaaSPlatform as a Service(平台即服务)提供 “应用开发 / 运行平台”:包含操作系统、数据库、中间件(如 Tomcat)、开发工具等,用户只需上传应用代码即可运行租用一个已装好环境的开发平台,直接写代码快速开发 Web 应用、移动 APP 后端、大数据分析(如使用 Hadoop 平台)
SaaSSoftware as a Service(软件即服务)提供 “开箱即用的软件应用”:用户无需安装,直接通过浏览器或客户端使用(如在线 Office、CRM 系统),所有维护由服务商负责直接用在线软件,不用管背后的技术企业办公(钉钉、企业微信)、在线协作(飞书文档)、客户管理(Salesforce)
Serverless1.FaaS(Function as a Service,函数即服务)
2.BaaS(Backend as a Service,后端即服务)
开发者无需管理服务器,只需编写业务逻辑代码,按实际执行消耗付费直接使用别人的容器平台,云厂商按照使用时长和算力来收费,企业不需要购买服务器了适合流量波动大、执行时间短、事件驱动型的业务场景

函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务,您无需管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,并以弹性、可靠的方式运行您的代码

二、Rocky (使用 dnf 或 yum 安装)

参考Centos的官方文档:https://docs.docker.com/engine/install/centos/

第1步:卸载以前安装过的docker相关的软件

[root@localhost ~]#sudo dnf remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

第2步: 配置安装docker的源,默认使用官方的源,在安装的时候出错,下载不下来软件,建议使用阿里云的源

# 两条命令等同,yum 是 dnf 的软链接,执行 yum install yum-utils 本质也是安装 dnf 兼容的扩展工具
[root@localhost ~]# sudo yum install -y yum-utils
[root@localhost ~]# sudo dnf -y install dnf-plugins-core
[root@localhost ~]# sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@localhost ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第3步: 安装docker

  • docker-ce 是docker引擎,提供docker服务的
  • docker-ce-cli 提供docker客户端命令的
  • containerd.io 是提供容器运行时管理的
  • docker-buildx-plugin 是docker的一个插件,用来构建镜像
  • docker-compose-plugin docker的单机里的容器编排工具,可以同时启动很多容器
[root@localhost ~]# sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  -y

第4步: 启动docker

[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

第5步:查看dockerd进程,确认docker服务已经启动了

[root@localhost yum.repos.d]# ps aux|grep docker
root       17423  0.3  2.1 1908364 80208 ?       Ssl  11:42   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       17661  0.0  0.0   6408  2176 pts/0    S+   11:42   0:00 grep --color=auto docker
# 查看版本
[root@docker ~]# docker --version
Docker version 28.4.0, build d8eb465

三、docker 基本使用

3.1 配置国内源

在使用 Docker 时,默认是访问docker官方提供的镜像下载的网站,配置合适的镜像源可以显著提升镜像拉取速度,尤其是在国内网络环境下

[root@localhost ~]# mkdir  -p /etc/docker/
# 添加2个国内的源
[root@localhost docker]# sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://docker.xuanyuan.me","https://docker.1panel.live"]
}
EOF
{
    "registry-mirrors": ["https://docker.xuanyuan.me","https://docker.1panel.live"]
}
[root@localhost docker]# sudo systemctl daemon-reload
[root@localhost docker]# sudo systemctl restart docker

3.2 下载nginx镜像

docker pull
不接版本号,默认下载最新的

[root@localhost docker]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
b1badc6e5066: Pull complete 
a2da0c0f2353: Pull complete 
e5d9bb0b85cc: Pull complete 
14a859b5ba24: Pull complete 
716cdf61af59: Pull complete 
14e422fd20a0: Pull complete 
c3741b707ce6: Pull complete 
Digest: sha256:33e0bbc7ca9ecf108140af6288c7c9d1ecc77548cbfd3952fd8466a75edefe57
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

3.3 查看本机已经下载的镜像

docker images

[root@localhost docker]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    ad5708199ec7   3 weeks ago   192MB

3.4 启动一个nginx的容器

–》启动nginx程序
docker run

  • --name sc-nginx-1:指定容器名称为 sc-nginx-1(方便后续管理)
  • -p 8080:80:端口映射,将宿主机的 8080 端口映射到容器内的 80 端口
  • -d:后台运行容器( detached 模式)
  • nginx:使用的镜像名称(默认拉取 latest 标签版本)
[root@localhost docker]# docker run --name sc-nginx-1  -p 8080:80  -d  nginx
12af7441bf2e0fdefb41445aca7f4ec4a6284acfb24c89f70672689002895dff

3.5 查看启动的容器

docker ps

[root@localhost docker]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                     NAMES
12af7441bf2e   nginx     "/docker-entrypoint.…"   29 seconds ago   Up 29 seconds   0.0.0.0:8080->80/tcp, [::]:8080->80/tcp   sc-nginx-1

浏览器访问宿主机的8080端口可正常显示nginx的首页

3.6 镜像导入/导出

导出

[root@localhost images]# docker save -o nginx.tar nginx

导入

[root@localhost images]# docker load -i nginx.tar nginx

3.7 删除镜像

[root@localhost docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest ad5708199ec7 3 weeks ago 192MB
[root@localhost ~]# docker rmi nginx

二、Ubuntu(使用 apt-get 进行安装)

官方文档:https://docs.docker.com/engine/install/ubuntu/
https://developer.aliyun.com/mirror/docker-ce
root@huang:~# cat /etc/issue
Ubuntu 24.04.2 LTS \n \l

之前装了的版本要移除

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

step 1: 安装必要的一些系统工具

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

step 2: 信任 Docker 的 GPG 公钥

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

step 3: 写入软件源信息

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

step 4: 安装Docker

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

三、CentOS (使用 yum 进行安装)

step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils

step 2: 添加软件源信息

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

step 3: 安装Docker

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

step 4: 开启Docker服务

sudo service docker start

到此这篇关于docker概念、安装与基本使用的文章就介绍到这了,更多相关docker安装和使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文详解docker容器中的memory限制

    一文详解docker容器中的memory限制

    在Docker中,内存管理是非常重要的一部分,Docker提供了一些功能来管理容器的内存使用情况,其中包括内存限制、内存交换和内存统计等,本文给大家详细介绍了docker容器中的memory限制,需要的朋友可以参考下
    2024-04-04
  • docker安装redmine步骤

    docker安装redmine步骤

    在本篇文章里小编给大家整理的是关于docker安装redmine步骤和相关代码,需要的朋友们学习下。
    2020-01-01
  • Windows 安装 Docker核心思路

    Windows 安装 Docker核心思路

    Docker是一个让应用在隔离环境中运行的工具,本质上是在已运行的Linux系统中创建一个隔离的文件环境,本文介绍了在Windows上安装Docker的方法,感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • Windows Server 2012 R2 安装 Docker的详细步骤

    Windows Server 2012 R2 安装 Docker的详细步骤

    这篇文章主要介绍了Windows Server 2012 R2 安装 Docker,在这个给大家说明下使用windows10、Windows Server 2016以上系统可直接使用安装包,低版本系统需要使用 Docker Toolbox 来进行安装使用 Docker,需要的朋友可以参考下
    2022-04-04
  • docker 搭建单机PostgreSQL操作详解

    docker 搭建单机PostgreSQL操作详解

    本文通过实际案例操作演示了如何基于Docker搭建pg的完整过程,并补充了pg数据库操作的常用命令和授权命令,感兴趣的朋友一起看看吧
    2025-04-04
  • 使用Docker Compose一键部署OnlyOffice的完整指南与配置解析

    使用Docker Compose一键部署OnlyOffice的完整指南与配置解析

    OnlyOffice作为一款强大的开源办公套件,不仅提供与Microsoft Office高度兼容的在线编辑体验,还支持实时协作编辑,成为许多企业和团队的首选解决方案,下面就将详细介绍如何使用Docker Compose快速部署功能完整的OnlyOffice服务栈
    2026-01-01
  • Docker上部署FastApi的示例代码

    Docker上部署FastApi的示例代码

    本文主要介绍了Docker上部署FastApi的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • docker中容器运行时如何将目录和宿主机进行挂载

    docker中容器运行时如何将目录和宿主机进行挂载

    对于一个已经运行的容器,如果后续需要新挂载一个目录怎么办?下面这篇文章主要给大家介绍了关于docker中容器运行时如何将目录和宿主机进行挂载的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • Docker配置文件daemon.json配置国内源的实现

    Docker配置文件daemon.json配置国内源的实现

    本文主要介绍了Docker配置文件daemon.json配置国内源的实现,通过编辑daemon.json文件添加镜像地址、重启服务及验证步骤,提升镜像拉取效率,感兴趣的可以了解一下
    2025-08-08
  • docker nginx ssl设置的实现步骤

    docker nginx ssl设置的实现步骤

    本文主要介绍了docker nginx ssl设置的实现步骤,使用docker运行nginx,配置代理,和ssl设置,进行https访问,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08

最新评论