NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

  • Docker

    • 基本命令
    • Docker Compose Specification快速开始
    • Docker Swarm
    • Docker容器默认时区导致MySQL时区问题错误
    • Docker - 概述
      • 诞生的背景
      • Docker与虚拟机
      • 镜像和容器
      • Docker和DockerHub
      • Docker架构
      • Docker安装
        • CentOS
        • 卸载(可选)
        • 安装
        • 启动
        • 配置镜像加速
    • Docker - 基本概念
    • Docker - 自定义镜像(Dockerfile)
    • Docker Compose
    • Docker镜像仓库
    • 常用容器

  • 云原生

  • Kubernetes

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • Docker
NipGeihou
2022-06-09
目录

Docker - 概述

SpringCloud+RabbitMQ+Docker+Redis + 搜索 + 分布式,史上最全面的 springcloud 微服务技术栈课程 | 黑马程序员 Java 微服务_哔哩哔哩_bilibili (opens new window)

# 诞生的背景

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发、测试、生产环境有差异
image-20220609122932058

Docker 如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?

  • Docker 允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
  • Docker 应用运行在容器中,使用沙箱机制,相互隔离
image-20220609123330691

Docker 如何解决开发、测试、生产环境有差异的问题?

  • Docker 镜像中包含完整运行环境,包括系统函数库,仅依赖系统的 Linux 内核,因此可以在任意 Linux 操作系统上运行

# Docker 与虚拟机

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的 Ubuntu 应用了。

image-20220609124347492

Docker 和虚拟机的差异:

  • docker 是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker 体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

# 镜像和容器

镜像(Image):Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是 Docker 会给容器做隔离,对外不可见。

image-20220609124832867

# Docker 和 DockerHub

  • DockerHub:DockerHub 是一个 Docker 镜像的托管平台。这样的平台称为 Docker Registry。
  • 国内也有类似于 DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。

image-20220609124956877

# Docker 架构

Docker 是一个 CS 架构的程序,由两部分组成:

  • 服务端 (server):Docker 守护进程,负责处理 Docker 指令,管理镜像、容器等
  • 客户端 (client):通过命令或 RestAPI 向 Docker 服务端发送指令。可以在本地或远程向服务端发送指令。

image-20220609125141134

镜像可以是自己构建的(自己写的微服务),也可以是去 docker hub 拉取的(通用中间件)

# Docker 安装

Docker 分为两大版本:

  • CE 即社区版,免费,支持周期 7 个月,分为 stable test 和 nightly 三个更新频道。
  • EE 即企业版,强调安全,付费使用,支持周期 24 个月。

官网安装指南:https://docs.docker.com/engine/install/

一键安装: curl -sSL https://get.daocloud.io/docker | sh

# CentOS

# 卸载(可选)

如果之前安装过旧版本的 Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

# 安装

首先需要大家虚拟机联网,安装 yum 工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

yum install -y docker-ce

docker-ce 为社区免费版本。稍等片刻,docker 即可安装成功。

# 启动

通过命令启动 docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

然后输入命令,可以查看 docker 版本:

docker -v

# 配置镜像加速

在云服务器中配置镜像,应优先考虑对应服务商的。

Docker 官方镜像仓库网速较差,我们需要设置国内镜像服务:

  • 阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  • 腾讯云:https://cloud.tencent.com/document/product/1207/45596

上次更新: 2025/04/18, 19:09:23
Docker容器默认时区导致MySQL时区问题错误
Docker - 基本概念

← Docker容器默认时区导致MySQL时区问题错误 Docker - 基本概念→

最近更新
01
iSCSI服务搭建
05-10
02
磁盘管理与文件系统
05-02
03
网络测试 - iperf3
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式