当前位置: 首页 > news >正文

从认识Docker到安装

img

😀前言
本篇文档主要面向初学者和实践者,系统介绍了 Docker 的体系架构、基本组成、核心概念、安装步骤以及镜像加速等内容,结合实际操作命令,帮助读者快速掌握 Docker 的基础知识与使用方法。希望通过本篇文档,读者能够对 Docker 有一个清晰全面的认识,并能够在后续的学习和工作中灵活应用。

🏠个人主页:尘觉主页

文章目录

  • 从认识Docker到安装
    • 1. Docker 体系架构
    • 2. Docker 基本组成
      • 镜像与容器关系
    • 3. Docker 基本术语
      • 3.1 Docker 主机(Host)
      • 3.2 Docker 镜像(Image)
      • 3.3 Docker 容器(Container)
      • 3.4 Docker 仓库(Repository)
    • 4. 使用 Docker 的基本步骤
    • 5. 安装 Docker
      • 5.1 环境依赖
      • 5.2 CentOS 7+ 安装
      • 5.3 Ubuntu 安装
    • 6. Docker 镜像加速配置
    • 7. Docker-Compose 安装
    • 8. 小结

从认识Docker到安装

1. Docker 体系架构

Docker 采用 C/S 架构 (Client / Server):

  • Docker Client(客户端)
    用户通过命令行或 API 与 Docker 交互,客户端发送请求给服务端。

  • Docker Daemon(守护进程)
    服务端进程,负责接收客户端请求并执行相应操作,如创建、运行和分发容器。

  • 通信方式

    • 本地:通过 Unix Socket 通信
    • 远程:通过 HTTP / HTTPS 通信
      在这里插入图片描述

2. Docker 基本组成

参考官方文档 👉 Docker Overview

  • Docker Host(主机)
    安装了 Docker 程序的物理机或虚拟机,运行守护进程和容器。

  • Docker Daemon(服务端)
    核心后台进程,管理容器生命周期。

  • Docker Client(客户端)
    通过命令行工具 docker 与守护进程交互。

  • Docker Registry(镜像仓库)
    用于存储和分发镜像,类似于代码仓库。

    • 公有仓库(Docker Hub)
    • 私有仓库(企业内部)
  • Docker Image(镜像)
    应用运行的模板,由多层只读层组成。
    一个镜像可以创建多个容器。

  • Docker Container(容器)
    镜像的运行实例,包含应用及其依赖环境。容器彼此隔离,具备独立的文件系统、网络和进程空间。官方仓库: https://hub.docker.com/

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo systemctl restart docker
#Docker-compose安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

镜像与容器关系

  • 镜像:静态文件,只读,类似程序。
  • 容器:镜像的运行环境,动态,有生命周期,类似进程。

对比:

  • /bin/ls → 程序文件
  • ls /etc → 进程
  • ls /var → 进程

⚠️ 注意:

  • Docker 客户端与服务端通过 HTTP / HTTPS 协议交互。
  • 默认镜像下载使用 HTTPS,如需 HTTP 需手动配置。
  • 镜像来源:Docker Hub、阿里云、华为云等。

3. Docker 基本术语

3.1 Docker 主机(Host)

运行 Docker 程序的服务器,通常是 Linux 环境。

3.2 Docker 镜像(Image)

docker 镜像就好比是一个(只读)模板(和我们常见的 ISO 镜像类似,支持增删改查),可以通过这个模板来创建容器服务,tomcat镜像 ===> run ===> tomcat01容器(提供服务),一个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)

镜像不是一个单一的文件,而是有多层构成,我们可以通过 docker history <ID/NAME> 查看镜像中各层内容及大小,每层对应着Dockerfile中的一条指令

Docker镜像默认存储在 /var/lib/docker/,docker info 查看 Docker 使用的 Storage Driver

3.3 Docker 容器(Container)

  • 镜像运行后的实例称为 容器。(ps可以把容器看做是一个简易版的linux环境,包括root用户权限、进程空间、用户空间、网络空间、文件系统和运行的在其中的应用程序)

  • 每运行一次镜像就会产生一个容器。

  • 容器具有 沙箱机制,相互隔离,安全独立。

  • 容器 = 镜像 + 读写层。(ps 容器其实是在镜像的最上面加了一层读写层,在运行容器里文件改动时,会先从镜像要写的文件复制到容器自己的文件系统(读写层)如果容器删除了,最上面的读写层也就删除了,改动也就丢失了,所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统复制过来操作的,并不会修改镜像的源文件,这种方式提高磁盘利用率,若想持久化这些改动,可以通过 docker commit 将容器保存成一个新的镜像

  • 删除容器时,其读写层也会随之删除。

  • 改动持久化方式:

    docker commit <container_id> <new_image_name>
    

3.4 Docker 仓库(Repository)

  • 存放镜像的仓库。
  • 分为 公开仓库(Public)私有仓库(Private)

4. 使用 Docker 的基本步骤

  1. 安装 Docker
  2. 从仓库下载镜像
  3. 运行镜像 → 生成容器
  4. 启动 / 停止容器,相当于启动 / 停止应用

5. 安装 Docker

5.1 环境依赖

  • 64 位 CPU
  • 内存 ≥ 4G
  • Linux Kernel ≥ 3.10
  • 内核支持 cgroups 和 namespaces

5.2 CentOS 7+ 安装

“Extras” repository (使用命令yum repolist可以看到extras,extras里面有docker)

Cenots7 版本自带的 docker 版本较老,建议卸载后,安装新版

cd /etc/yum.repos.d/
# 下载清华 Docker 仓库
wget https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's@https://.*@https://mirrors.tuna.tsinghua.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo
# 使用 yum repolist 看到 docker-ce-stable/x86_64
# 卸载旧的版本
yum remove docker docker-client docker-client-latest docker-common 
yum remove docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 删除资源
rm -rf /var/lib/docker
# 更新软件包索引
yum makecache fast
# 安装 docker 社区版
yum -y install docker-ce docker-ce-cli containerd.io
# 启动 Docker
systemctl start docker
# 查看 docker 版本
docker version
# 开机启动 Docker
systemctl enable docker
# 查看 Docker 状态
systemctl status docker
# 验证是否正确安装了docker,方法是运行 hello-world 镜像
docker run hello-world
# 关闭 Docker
systemctl stop docker

5.3 Ubuntu 安装

参考文档:

  • Install Docker on Debian
  • 清华源 Docker-CE
#卸载旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
#安装依赖
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
#信任 Docker 的 GPG 公钥(发行版不同,下面的内容也有所不同)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#添加仓库(发行版不同,下面的内容也有所不同)
sudo add-apt-repository \"deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable"#安装docker-ce
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
# 指定安装版本
apt install docker-ce=5:19.03.15~3-0~ubuntu-bionic docker-ce-cli=5:19.03.15~3-0~ubuntu-bionic#检查是否安装成功
[root@docker ~]# docker run hello-worldHello from Docker!
This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/

6. Docker 镜像加速配置

可使用阿里云 / 网易云等国内镜像源,加快镜像下载速度。

配置示例(/etc/docker/daemon.json):

{
vi /etc/docker/daemon.json {"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"] }systemctl daemon-reload&&systemctl enable --now docker
}

7. Docker-Compose 安装

# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose# 验证
docker-compose --version

8. 小结

  • Docker 采用 C/S 架构,核心组件包括:Client、Daemon、Image、Container、Registry。
  • 镜像是模板,容器是实例,仓库是镜像存放地。
  • 使用流程:安装 → 拉取镜像 → 运行容器 → 管理容器。
  • 实际开发中,常结合 镜像加速Docker-Compose 提升效率。

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

img

http://www.dtcms.com/a/350570.html

相关文章:

  • 深分页实战
  • 服务注册信息丢失ERROR 2003 (HY000):Can‘t connect to MySQL server on ‘localhost’(10061)
  • 数据结构青铜到王者第三话---ArrayList与顺序表(1)
  • 【MTCNN网络结构记忆卡片】--003nets.py
  • STM32之DMA详解
  • 专题:2025人工智能2.0智能体驱动ERP、生成式AI经济现状落地报告|附400+份报告PDF、原数据表汇总下载
  • 基于知识图谱的装备健康智能维护系统KGPHMAgent
  • 项目管理进阶——软件研发版本管理规范
  • 虚幻基础:摄像机功能
  • MongoDB分片集群自动化部署
  • uni-app 组件之自定义导航栏
  • 某鱼平台二手商品搜索接口开发实战:个人闲置与商家转让数据获取方案
  • Nginx与Apache:Web服务器性能大比拼
  • 【Android】ViewPager2与Fragment的组合
  • 【机器学习学习笔记】机器学习引言
  • Portswigger靶场之Visible error-based SQL injection通关秘籍
  • 掌握Linux防火墙:iptables四表五链全解析
  • PC端逆向会用到的常见伪指令
  • 云计算与云原生技术探索
  • Rust 登堂 之 ‘static 和 T: ‘static(二)
  • 20、DMA----释放CPU压力,加快传输
  • 滚珠丝杆升降机的多台联动使用方案可以应用哪些领域
  • [pilot智驾系统] 自动驾驶守护进程(selfdrived)
  • linux - jvm相关命令
  • 操作系统中,进程与线程的定义与区别
  • 雷卯针对香橙派Orange 4G-IOT开发板防雷防静电方案
  • `lock()` 和 `unlock()` 线程同步函数
  • THM Bricks Heist靶机
  • Java 学习笔记(基础篇10)
  • HTML应用指南:利用POST请求获取全国三星门店位置信息