【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
相关文章
|
3天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
92 64
|
4天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
51 24
|
5天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
53 24
|
4天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
48 11
|
1月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
1098 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
569 11
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
587 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
1月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
99 2
|
2月前
|
监控 虚拟化 Docker
Window系统安装Docker
这篇文章提供了在Windows系统上安装与配置Docker的详细指南,包括Docker Desktop的安装及通过Docker来运行容器化应用的步骤。
158 1
Window系统安装Docker
|
2月前
|
存储 物联网 数据安全/隐私保护
Docker安装Mosquitto
这篇文章详细介绍了如何在Docker中安装和配置Mosquitto消息代理服务,包括拉取镜像、创建容器以及配置持久化存储等步骤。
130 0
Docker安装Mosquitto