今天我们开始学习Docker概述与安装

一、 Docker概述


Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口。几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或者包装系统。

Docker容器技术与虚拟机的区别

相同点:docker容器技术和虚拟机技术,都是虚拟化技术。

不同点:docker有着比虚拟机更少的抽象层。 由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。所以docker效率比虚拟机效率高。达到了秒级启动的地步。

Docker相较于VM的优点

  • 比VM小、快,Docker容器的尺寸减小相比于整个虚拟机大大简化了分布到云和分发时间的开销。Docker启动一个容器实例时间仅仅需要几秒钟。

  • Docker是一个开放的平台,构建、发布和运行分布式应用程序。

  • 开发人员不需要关注具体是哪个Linux操作系统。

  • Google、微软(azure)、亚马逊(AWS)、IBM等都支持docker。

  • Docker支持Unix/Linux操作系统,也支持Windows和Mac。

  • 一次封装,到处运行

Docker局限性

Docker用于应用程序时是最有用的,但并不包含数据。日志、数据库等通常放在Docker容器外。一个容器的镜像通常都很小,不用存储大量数据,存储可以通过外部挂载等方式使用,比如:NFS、ipsan、MFS、ceph等 ,或者docker -v 命令进行映射磁盘。总之,docker只用于计算,存储交给别人。

Docker通常用于如下场景

  • web应用的自动化打包和发布;

  • 自动化测试和持续集成、发布;

  • 在服务型环境中部署和调整数据库或其他的后台应用;

  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

二、 Docker 架构


Docker 包括三个基本概念

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

三、 Docker安装


使用ansible,复制yum源

bash 复制代码
[root@ansible ~]# yum install -y docker-ce

编辑配置文件/etc/docker/daemon.json 做好仓库优化

bash 复制代码
[root@localhost ~]# 
cat <<EOF >>/etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://0vmzj3q6.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io",
        "https://mirror.baidubce.com",
        "https://dockerproxy.com",
        "https://mirror.iscas.ac.cn",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru",
        "https://vlgh0kqj.mirror.aliyuncs.com"
    ]
}
EOF

只能本地访问连接 并开机自启

bash 复制代码
[root@localhost ~]# systemctl daemon-reload
systemctl enable --now docker

查看进程状态

bash 复制代码
[root@ansible ~]# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Mon 2025-12-01 20:08:58 CST; 10min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1264 (dockerd)
      Tasks: 12
     Memory: 110.5M ()
     CGroup: /system.slice/docker.service
             └─1264 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

12月 01 20:08:57 ansible dockerd[1264]: time="2025-12-01T20:08:57.344303670+08:00" level=info msg="Deleting nftables IPv4 rule>
12月 01 20:08:57 ansible dockerd[1264]: time="2025-12-01T20:08:57.353650106+08:00" level=info msg="Deleting nftables IPv6 rule>
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.230686765+08:00" level=info msg="Loading containers: done."
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.255053382+08:00" level=warning msg="WARNING: Support for cgr>
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.255327296+08:00" level=info msg="Docker daemon" commit=46126>
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.256426145+08:00" level=info msg="Initializing buildkit"
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.293253324+08:00" level=info msg="Completed buildkit initiali>
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.311351983+08:00" level=info msg="Daemon has completed initia>
12月 01 20:08:58 ansible dockerd[1264]: time="2025-12-01T20:08:58.311481164+08:00" level=info msg="API listen on /run/docker.s>
12月 01 20:08:58 ansible systemd[1]: Started Docker Application Container Engine.

查看访问接口

bash 复制代码
[root@ansible ~]# ps aux | grep docker
root        1264  0.1  2.3 2127184 80636 ?       Ssl  20:08   0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root        2442  0.0  0.2  21988  7936 pts/0    S+   20:21   0:00 grep --color=auto docker

查看镜像

bash 复制代码
[root@ansible ~]# docker images
                                                                                                          i Info →   U  In Use
IMAGE           ID             DISK USAGE   CONTENT SIZE   EXTRA
alpine:latest   4b7ce07002c6       12.8MB          3.8MB        
centos:7        be65f488b776        301MB         76.1MB        
nginx:latest    553f64aecdc3        225MB         59.8MB    U   

安装完成。

相关推荐
optimistic_chen10 小时前
【Redis系列】主从复制
linux·数据库·redis·缓存·中间件·命令行·主从复制
冬天的风滚草10 小时前
揭秘云原生混布资源调度器Koordinator (十三)GPU 资源管理总览
云计算
zhyf11910 小时前
零刻AI Max395(Ubuntu 24.04)AMD 显卡监控工具(amdgpu_top)部署手册
linux·运维·ubuntu
冬天的风滚草10 小时前
揭秘云原生混布资源调度器Koordinator (十四)DeviceShare 调度插件详解
云计算
Gary Studio10 小时前
simulink simscape(机器人方向)学习笔记
笔记·学习
释怀不想释怀10 小时前
Docker(项目部署)
运维·docker·容器
wdfk_prog10 小时前
[Linux]学习笔记系列 -- 内存管理与访问
linux·笔记·学习
go_bai10 小时前
Linux-网络基础
linux·开发语言·网络·笔记·学习方法·笔记总结
laocooon52385788610 小时前
学习计算机知识的量变质变关系模态分析
学习
我命由我1234510 小时前
Photoshop - Photoshop 工具栏(58)锐化工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop