【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
相关文章
|
12天前
|
消息中间件 Docker 容器
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
这篇文章提供了RabbitMQ的安装和基本使用教程,包括如何使用Docker拉取RabbitMQ镜像、创建容器、通过浏览器访问管理界面,以及如何创建交换机、队列、绑定和使用direct、fanout和topic三种类型的交换器进行消息发布和接收的测试。
消息中间件RabbitMQ---Docker安装RabbitMQ、以及RabbitMQ的基本使用【二】
|
12天前
|
关系型数据库 MySQL Java
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
这篇文章介绍了在腾讯云服务器上使用Docker安装常见软件的过程,包括安装MySQL、Redis和Tomcat,并提供了解决连接问题的方法。同时,还涉及了服务器中安装JDK 1.8的步骤和如何将项目打包部署到服务器上的指导,包括注意事项和操作提示。
腾讯云服务器的使用、服务器中使用Docker安装常见的软件、如何将一个项目发布到服务器
|
12天前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
2天前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
6天前
|
存储 搜索推荐 应用服务中间件
深入探索Docker 安装 Tomcat
【8月更文挑战第26天】
21 4
|
5天前
|
NoSQL Redis 数据安全/隐私保护
深入探索利用Docker安装Redis
【8月更文挑战第27天】
23 2
|
9天前
|
数据安全/隐私保护 iOS开发 Docker
深度了解MacOS Docker 安装
【8月更文挑战第23天】深度了解MacOS Docker 安装
18 1
|
12天前
|
应用服务中间件 Linux nginx
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
这篇文章讨论了Linux虚拟机磁盘扩容的方法,包括外部配置、具体扩容步骤和扩容后的效果验证。同时,文章还涉及了Docker容器磁盘满的问题及其解决方法,如删除不必要的镜像和容器,以及调整Docker的安装路径。此外,还提到了意外情况的处理,例如误删除停止的容器后的应对措施。最后,文章还提供了使用Docker安装nginx的步骤和成功访问的截图。
Linux虚拟机磁盘扩容、Docker容器磁盘满的问题、Docker安装nginx
|
12天前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
12天前
|
关系型数据库 MySQL Linux
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
这篇文章提供了在Linux系统中使用Docker安装Mysql 5.7版本的详细过程和图解,包括安装指定版本、创建实例、启动、使用Navicat连接测试、文件挂载与端口映射、进入容器、配置文件修改以及重新启动容器等步骤。
一文教会你如何在Linux系统中使用Docker安装Mysql 5.7版本 【详细过程+图解】
下一篇
云函数