【Docker】1、认识 Docker 和安装 Docker

简介: 【Docker】1、认识 Docker 和安装 Docker

零、项目部署问题

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

✏️① 依赖关系复杂,容易出现兼容性问题

✏️ ② 开发、测试、生产环境有差异

一、Docker 简介

✏️ ① Docker 可解决众多复杂依赖的兼容性问题

将应用的 Libs(函数库)、Deps(依赖)、配置 和应用一起打包,

将每个应用放到一个隔离容器去运行,避免互相干扰

Ubuntu 和 CentOS 都是基于 Linux 内核开发的 Linux 的发行版,只是系统应用不同,提供的函数库有差异

✏️ ② Docker 可解决不同系统环境的问题

  • Docker 将应用程序和所需要调用的系统(如 Ubuntu)函数库一起打包
  • Docker 运行到不同操作系统时,直接基于打包的库函数运行,借助于操作系统的 Linux 内核来运行

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

① Docker 允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像

② Docker 应用运行在容器中,使用沙箱机制,相互隔离


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

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

二、Docker 和虚拟机

虚拟机(virtual machine)可用于在操作系统中模拟硬件设备,然后运行另一个操作系统。

Docker 和虚拟机的差异

  • docker 是一个系统进程虚拟机是在操作系统中模拟硬件设备,然后安装其他操作系统的工具( 虚拟机是在操作系统中的操作系统
  • docker 体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

三、镜像和容器

  • 镜像(Image):Docker 将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像
  • 容器(Container):镜像应用程序运行后形成的进程就是容器,只是 Docker 会给容器做隔离,对外不可见


四、Docker 架构

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

🎹① 服务端(Server):Docker 守护进程,负责处理 Docker 命令,管理镜像、容器等

🎹② 客户端(Client):通过命令或 RestAPI 向 Docker 服务端发送命令(可在本地或远程向服务端发送命令)

五、CentOS7 上安装 Docker

  • Docker 分为 CE 和 EE 两大版本。CE 是社区版(免费,支持周期 7 个月);EE 是企业版(强调安全,付费使用,支持周期 24 个月)
  • Docker CE 有stabletestnightly 三个更新频道
  • 官方网站上有各种环境下的 安装指南(https://docs.docker.com/get-docker/) (下面介绍 Docker CE 在 CentOS上的安装)
  • Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,所以在CentOS 7安装Docker

查看当前安装的 CentOS 发行版的版本命令:cat /etc/centos-release

(1) 卸载曾经安装过的 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

(2) 安装 Docker

🎄 ① 安装 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

🎄 ③ 执行安装 Docker 的命令

yum install -y docker-ce

如出现下图反馈,出现配置 Docker 国内镜像源

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

(3) 启动 Docker

# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙服务开机自启
systemctl disable firewalld
  • 执行启动 Docker 的命令
# 启动 Docker
systemctl start docker

✒️ 查看 Docker 是否启动成功:

systemctl status docker

docker -v

(4) 启动、关闭、重启 Docker

# 启动
systemctl start docker
# 关闭
systemctl stop docker
# 重启
systemctl restart docker

六、配置 Docker 镜像国内仓库

  • 日后将会向 DockerHub 等镜像服务器拉取镜像
  • 而 DockerHub 服务器在国外,向国外拉取镜像非常慢
  • 配置国内 Docker 镜像后,拉取镜像操作会快很多

配置阿里云的镜像加速:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors【查看该文档需登录阿里云账号】

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://r3kq4wio.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
相关文章
|
4月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
2月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
348 3
docker 安装 Postgres 17.6
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
333 5
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
328 2
|
7月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
5月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
642 4
|
4月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
1672 0
下一篇
oss云网关配置