【云原生 • Docker】初识Docker和Docker的坏境搭建(保姆级教学)

简介: 前言:当我们学习一门技术,最快的学习方法是看官方文档。个人理解docker中的镜像就像是咱们java 中的Class而容器是基于这个镜像构建出的实例。我是一个初学者,理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习…按我理解好比docker 镜像:java中 classdocker容器 :java中 class new出来的对象

1、了解Docker

例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等


这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突,容易出现兼容性问题。公司开发、测试、生产环境有差异,给部署带来了极大的困难。而Docker刚好解决这些问题。


1.1 什么是Docker?

Docker 是一个开源的应用容器引擎。


Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。


容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


1.2 Docker的优点

更快速的启动时间

快速,一致地交付您的应用程序

响应式部署和扩展

在同一硬件上运行更多工作负载

1.3 Docker的应用场景

Web 应用的自动化打包和发布。

自动化测试和持续集成、发布。

在服务型环境中部署和调整数据库或其他的后台应用。

从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

总结

这里用公司数据中心和Docker比较,让我们快速理解Docker


数据中心 Docker

N台服务器 N个容器

不同类型的操作系统 直接复用本地主机的操作系统

依赖关系复杂,开发、测试、生产环境有差异,容易出现兼容性问题 可以在不同的环境中运行

启动应用时间长 可以做到秒级,甚至毫秒级的启动时间

价格昂贵,在同一硬件上不能运行更多工作负载,资源过剩 在同一硬件上运行更多工作负载,提供了可行、经济、高效的替代方案


2、Docker 架构

Docker 包括3个基本概念:


镜像(Image):

Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。


容器(Container):

容器是独立运行的一个或一组应用,是镜像运行时的实体。


仓库(Repository):

Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。

Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。


一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。


通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。


另外也包括Docker 主机(Host)和Docker Machine


Docker 主机(Host)

一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。


Docker Machine

Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、Digital Ocean、Microsoft Azure。


微信图片_20230527161124.png


3、Docker 坏境搭建

3.1 准备工作(已有 Linux 环境可省略)

在这里我们用 VM 虚拟机 + CentOS 的环境进行 Docker 部署


首先准备一台 CentOS 系统的虚拟机,可以看到主机的 IP 地址为 192.168.79.139;


为了更加直观,我将使用 Xhell 6 连接虚拟机进行操作演示:

微信图片_20230527161127.png

微信图片_20230527161154.png


3.2 安装Docker

Docker 支持以下的 64 位 CentOS 版本:


CentOS 7

CentOS 8

更高的版本

第一步:卸载旧版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项


yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y

1

第二步:yum 包更新到最新


yum update -y

1

第三步:安装所需的软件包

yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2


yum install -y yum-utils device-mapper-persistent-data lvm2

1

第四步:设置 yum 源为阿里云


yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1

第五步:安装 Docker


yum install docker-ce -y

1

第六步:检查 Docker 版本


docker -v

1

使用 docker -v 命令可以查看到版本号即说明安装成功。

微信图片_20230527161207.png


至此,Docker坏境搭建完成


目录
相关文章
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
527 2
|
1月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
337 2
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
265 5
|
11月前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
449 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
237 3
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
运维 Cloud Native Docker
云原生技术入门:Docker容器化实战
【9月更文挑战第20天】本文将引导你走进云原生技术的世界,通过Docker容器化技术的实战演练,深入理解其背后的原理和应用。我们将一起探索如何在云平台上利用Docker简化部署、扩展和管理应用程序的过程,并揭示这一技术如何改变现代软件的开发和运维模式。
181 18