Docker入门

文章目录

  • 一、Dpcker简介
    • [1.1 是什么](#1.1 是什么)
    • [1.2 使用场景](#1.2 使用场景)
    • [1.3 Docker和VMware区别](#1.3 Docker和VMware区别)
    • 1.4优缺点
  • 二、安装及配置
    • [2.1 安装过程](#2.1 安装过程)
    • [2.2 安装效果演示](#2.2 安装效果演示)
    • [2.3 配置镜像仓库](#2.3 配置镜像仓库)
  • 三、基本命令
    • [3.1 Docker基本命令](#3.1 Docker基本命令)
    • [3.2 Docker镜像常用命令](#3.2 Docker镜像常用命令)

一、Dpcker简介

1.1 是什么

一种开源的容器化平台,可以让开发者将应用程序及其依赖项打包成一个独立的容器,然后部署到任何支持Docker的环境中运行。通过使用Docker,开发者可以实现快速部署、可移植性、可伸缩性和更高的资源利用率。 Docker的核心概念是容器,它是一个轻量级、独立的运行环境,包含了应用程序的代码、运行时环境、系统工具和系统库,可以在任何支持Docker的平台上运行。 Docker还提供了一套工具和服务,如Docker Engine、Docker Compose和Docker Swarm,帮助开发者管理和部署容器化应用程序。 Docker已经成为现代软件开发和部署的重要工具之一(新一代虚拟技术,老一代是VMware,会占用大量内存)。

1.2 使用场景

①、面向开发人员的Web应用自动化打包和发布 :在没有Docker之前,开发、测试、生产环境可能不一致,导致文件配置上的不一致。使用Docker后,容器内的程序端口一致,而容器对外暴露的端口可能不同,但不影响程序的交付和运行,保证了环境一致性,并实现了快速部署。
②、面向运维人员的运维成本降低 :部署程序时,搭建运行环境和解决环境依赖是非常耗时的。Docker通过镜像机制,将代码和环境直接打包成镜像,上传到容器即可启动,大大节约了部署时间。
③、面向企业的PaaS层实现 :在一台物理机上可以部署多个轻量级的Docker容器,大大提高了运行效率。
④、微服务架构 :在微服务架构中,应用程序被拆分成多个小型、独立的服务。Docker可以用来容器化这些服务,使它们可以独立部署和扩展。
⑤、应用迁移和移植 :Docker可以帮助开发者轻松地将应用从开发环境迁移到生产环境,甚至在不同云服务提供商之间迁移,因为Docker容器提供了环境一致性。
⑥、隔离应用 :Docker容器提供应用级别的隔离,使不同的应用可以在同一台机器上运行,互不干扰。
⑦、整合服务器 :通过Docker,可以将多个服务整合到少数几台高性能服务器上,提高资源利用率,简化系统维护。
⑧、云计算和容器云:Docker容器可以在云环境中快速部署,无论是公有云、私有云还是混合云,都可以实现资源的灵活分配和自动化管理。

1.3 Docker和VMware区别

都是用于虚拟化技术的工具,但它们有一些重要的区别:

①、虚拟化级别:Docker是一种容器化技术 ,它利用容器来隔离应用程序和其依赖的环境。而VMware是一种虚拟机技术 ,它模拟了一台完整的计算机系统,包括硬件、操作系统和应用程序。

②、性能:由于Docker容器共享主机的操作系统内核 ,因此在性能方面比VMware虚拟机更高效。VMware虚拟机需要独立的操作系统和硬件模拟 ,因此在资源消耗和性能方面通常会有一些额外的开销。

③、部署和管理:Docker容器可以更快速地部署和启动 ,而且可以更容易地进行扩展和管理 。VMware虚拟机需要较长时间来启动 ,并且需要更多的管理和配置。

④、灵活性:Docker容器更加轻量级和灵活 ,可以在不同的环境中移植和部署。VMware虚拟机则需要更多的配置和资源来运行

总的来说,Docker更适合于轻量级和快速部署的应用程序,而VMware更适合于需要完全隔离和独立操作系统的应用程序。选择使用哪种虚拟化技术取决于具体的需求和场景。

1.4优缺点

优点
①简化程序 :Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
②避免选择恐惧症 :如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
③节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
缺点
①学习曲线陡峭 :Docker有一定的技术门槛,需要掌握一定的新概念和技术。对于初学者来说,可能需要一些时间来熟悉Docker的使用。
②安全性问题 :虽然Docker提供了多种安全机制来保护容器,但由于容器之间共享主机操作系统内核,因此仍然存在一些安全风险。例如,如果一个容器被攻击并成功突破了隔离层,它可能会影响到其他容器。
③网络和存储功能有限 :Docker在网络和存储方面的功能相对有限,可能无法满足一些复杂需求。例如,Docker的默认网络模式可能无法满足一些高级网络拓扑需求。
④部分应用可能不兼容 :尽管Docker支持大多数应用程序,但仍有部分应用程序可能无法或难以在Docker容器中运行。这可能需要额外的适配或修改工作。
⑤大规模部署时的复杂性:当需要在大规模环境中部署大量容器时,Docker的监控、管理和故障排除可能会变得复杂。这可能需要额外的工具和技术支持。

二、安装及配置

2.1 安装过程

c 复制代码
#查看内核
uname -r
 
#更新yum源为最新
yum update -y
 
#安装Docker所需要的工具包
yum install -y yum-utils device-mapper-persistent-data lvm2
 
#设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
#正式下载安装Docker
yum install docker-ce docker-ce-cli containerd.io -y -y
 
#启动Docker并且设置开机自启动
systemctl start docker
systemctl enable docker
 
#检测Docker是否安装成功
docker version

2.2 安装效果演示

1、查看内核

2、更新yum源为最新(这个更新很久,10分钟都有可能)

完毕

3、安装Docker所需要的工具包

4、设置yum源(设置yum源,否则走的是国外的(下载速度慢) 不能国内的(速度快),)

5、下载安装Docker

完毕

6、启动Docker并且设置开机自启动

7、检测Docker是否安装成功-----成功

2.3 配置镜像仓库

进入阿里云镜像官方网址:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

有的话更好,没有的话,注册一个,

第一步:注册,完成后返回就·好了阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台(此画面就是注册完之后的效果图)

第二步:进入阿里云镜像加速器:

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

在虚拟机中来到此文件

在文件中添加配置

【注意:每个人的配置文件不一样,下面图片的配置文件是本小编的】

然后再运行一下下面两行命令,这两行命令在镜像操作文档中也有

第三步:测试

如果下载到5~3分钟代表成功了,我花了一分钟

c 复制代码
#从官网查
docker search mysql
 
#下载mysql
docker pull mysql
 
#可以查看有多大
docker images


删除镜像命令:docker rmi 文件名

到此,Docker安装就OK了

三、基本命令

3.1 Docker基本命令

命令 命令
启动Docker systemctl start docker
停止Docker systemctl stop docker
重启Docker systemctl restart docker
开机启动Docker systemctl enable docker
查看Docker概要信息 docker info
查看Docker帮助文档 docker --help
查看Docker版本信息 docker version

3.2 Docker镜像常用命令

相关推荐
大卫小东(Sheldon)6 分钟前
在Docker中搭建rabbit MQ集群 (Mac + OrbStack)
docker
Java追光着8 分钟前
谷粒商城学习-10-docker安装mysql
学习·mysql·docker·谷粒商城
小宏运维有点菜1 小时前
docker
运维·docker·容器
孤城2861 小时前
08 docker Registry搭建docker私仓
运维·docker·容器·devops
明明跟你说过2 小时前
无服务器【Serverless】架构的深度剖析:组件介绍、优缺点与适用场景
微服务·云原生·容器·架构·serverless·运维开发·无服务器
Cherry Xie3 小时前
k8s常见组件之Kube-apiserver
云原生·容器·kubernetes
宿昔不梳一苦十年寒窗3 小时前
docker 安装 nacos
运维·docker·容器
2401_857617624 小时前
【Eureka服务治理深度解析】探索灰度发布的实现之道
云原生·eureka
不吃饭的猪5 小时前
【无标题】
java·开发语言·docker
是乐乐啊呀5 小时前
docker
运维·docker·容器