有漏洞的网站,郑州设计网站公司,用word做网站功能结构图,织梦做电子商务网站前言#xff1a;
都2024年了#xff0c;你还在为了安装一个开发或者部署环境、软件而花费半天的时间吗#xff1f;你还在解决开发环境能够正常访问#xff0c;而发布测试环境无法正常访问的问题吗#xff1f;你还在为持续集成和持续交付#xff08;CI / CD#xff09;工…前言
都2024年了你还在为了安装一个开发或者部署环境、软件而花费半天的时间吗你还在解决开发环境能够正常访问而发布测试环境无法正常访问的问题吗你还在为持续集成和持续交付CI / CD工作流程苦恼吗那还在犹豫是什么Docker能够完美的解决你遇到这所有的问题。 Docker是什么
Docker 是一个开源的应用容器引擎基于 Golang 语言开发可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中然后发布到任何流行的 Linux 服务器。容器是一个沙箱机制相互之间不会有影响类似于我们手机上运行的 app并且容器开销是很低的。
Docker 是一个供开发人员和系统管理员构建、运行和与容器共享应用程序的平台。使用容器部署应用程序称为容器化。容器并不是新事物但它们用于轻松部署应用程序却是新鲜的。 注意Docker并非是一个通用的容器工具它依赖于已存在并运行的Linux内核环境。 Docker的优势有哪些
灵活性即使是最复杂的应用程序也可以容器化。轻量级容器利用并共享主机内核使它们在系统资源方面比虚拟机更有效率。
可移植您可以在本地构建部署到云上并在任何地方运行。松耦合容器是高度自给自足和封装的允许您在不影响其他容器的情况下替换或升级其中一个。
可扩展您可以跨数据中心增加和自动分发容器副本。安全性容器对进程应用主动约束和隔离而不需要用户进行任何配置。 Docker的作用 Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分开以便您可以快速交付软件。使用 Docker您可以像管理应用程序一样管理基础设施。通过利用 Docker 的快速交付、测试和部署代码的方法您可以显着减少编写代码和在生产中运行代码之间的延迟。Docker(opens new window)是个划时代的开源项目它彻底释放了计算虚拟化的威力极大提高了应用的维护效率降低了云计算应用开发的成本使用 Docker可以让应用的部署、测试和分发都变得前所未有的高效和轻松无论是应用开发者、运维人员、还是其他信息技术从业人员都有必要认识和掌握 Docker节约有限的生命。 Docker主要用来解决什么问题 Docker的出现主要就是为了解决在我的机器上运行时是正常的但为什么到你的机器上就运行不正常了。 比如你写一个Web应用并且本地调试没有任何问题。这时候你想发给你的朋友试试看或者发布部署到远程的云服务器上查看效果那么首先你需要配置和你本地相同的软件环境如数据库Web服务器IISTomcatNginx必要的插件库等等。而这你还不能保证的你的软件一定能够运行起来因为别人可能用完全不同的操作系统即便是使用Linux每种发行版也会有微小的区别。 为了模拟完全相同的本地开发环境。
我们首先想到的就是虚拟机但是虚拟机需要模拟硬件运行整个操作系统不但体积臃肿内存占用高程序的性能也会受到影响。
如下图是比较常用的虚拟机 Docker的脱颖而出
这时候Dokcer就派上了用场Docker在概念上与虚拟机非常类似。但是Docker更轻量它不会去模拟底层的硬件 只会为每一个应用提供完全隔离的运行环境。你可以在容器中配置不同的应用环境并且不用的环境之间互相不影响这个“环境”在Docker中也被称作为Container(容器)。 Docker和虚拟机技术的区别
Docker 在容器的基础上进行了进一步的封装从文件系统、网络互联到进程隔离等等极大的简化了容器的创建和维护。使得 Docker技术比虚拟机技术更为轻便、快捷。
下面的图片比较了 Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后在其上运行一个完整操作系统在该系统上再运行所需应用进程而容器内的应用进程直接运行于宿主的内核容器内没有自己的内核而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 如果想详细了解可以参考文章docker与虚拟机的区别
Docker容器和虚拟机的区别总结 特性 docker容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生(宿主机) 弱于原生 系统支持量 单机支持上千个容器 一般几十个 Docker中的三个重要概念 Docker中的三个重要概念分别是Image镜像Container容器Repository仓储。 Image镜像一个特殊的文件系统 你可以把它理解成一个虚拟机的快照Snapshot里面包含了你要部署的应用程序以及它所关联的所有库。 操作系统分为内核和用户空间。对于Linux而言内核启动后会挂载root文件系统为其提供用户空间支持。而Docker镜像Image就相当于是一个root文件系统。Docker镜像是一个特殊的文件系统除了提供容器运行时所需的程序、库、资源、配置等文件外还包含了一些为运行时准备的一些配置参数如匿名卷、环境变量、用户等。 镜像不包含任何动态数据其内容在构建之后也不会被改变。 Container容器镜像运行时的实体 这里的容器就像是一台台运行起来的虚拟机里面运行了你的应用程序每个容器是独立运行的他们相互之间不影响。通过一个镜像我们可以创建许多个不同的Container容器。 镜像Image和容器Container的关系就像是面向对象程序设计中的类和类的实例一样镜像是静态的定义容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。容器的实质是进程但与直接在宿主执行的进程不同容器进程运行于属于自己的独立的命名空间。前面讲过镜像使用的是分层存储容器也是如此。容器存储层的生存周期和容器一样容器消亡时容器存储层也随之消亡。因此任何保存于容器存储层的信息都会随容器删除而丢失。 Repository仓储集中存放镜像文件的地方 镜像构建完成后可以很容易的在当前宿主上运行但是 如果需要在其它服务器上使用这个镜像我们就需要一个集中的存储、分发镜像的服务就像Git仓库一样Docker Registry就是这样的服务。 一个Docker Registry中可以包含多个仓库Repository每个仓库可以包含多个标签Tag每个标签对应一个镜像。所以说镜像仓库是Docker用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。通常一个仓库会包含同一个软件不同版本的镜像而标签就常用于对应该软件的各个版本 。我们可以通过仓库名:标签的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签将以latest作为默认标签。 Docker 架构及工作原理 Docker使用客户端-服务器架构。Docker 客户端与 Docker 守护进程通信后者负责构建、运行和分发Docker容器等繁重的工作。Docker 客户端和守护进程可以运行在同一个系统上或者您可以将一个 Docker 客户端连接到一个远程 Docker 守护进程。Docker 客户端和守护进程通过 UNIX 套接字或网络接口使用 REST API 进行通信。
Docker 架构及工作原理详情介绍 Dockerfile自动化脚本 主要是用来创建我们之间讲到的镜像这个过程就好比我们在虚拟机中安装操作系统和软件一样只不过是通过Dockerfile这个自动化脚本完成的。 Dockerfile详解教程文章Dockerfile制作自己的镜像文件 Docker管理工具 3款免费又好用的 Docker 可视化管理工具https://www.cnblogs.com/Can-daydayup/p/17810828.html
Portainer推荐 介绍Portainer是一个开源的、轻量级的Docker环境管理UI是Web应用的形式可以用来管理Docker宿主机和docker swarm集群。
Github 上项目地址GitHub - portainer/portainer: Making Docker and Kubernetes management easy.
官网地址https://www.portainer.io
支持的系统Linux, Mac OS X, Windows。
功能特性
管理仓库、网络、数据卷、密钥、镜像、容器管理你的配置例如告警、监控
支持容器的健康检查容器的启动、停止、恢复、删除
检查容器、查看容器日志、可视化状态查看进入容器控制台
可以添加扩展有一套 RBAC 基于角色的权限控制系统
DockStation 介绍DockStation是一个免费的、以开发人员为中心的用于管理基于 Docker的桌面应用程序。您可以仅使用 GUI 来监控、配置和管理服务和容器而不是大量的 CLI 命令。
官网地址https://dockstation.io/
Github地址GitHub - DockStation/dockstation: DockStation is developer-centric application to managing projects based on Docker. Instead of lots of CLI commands you can monitor, configure, and manage services and containers using just a GUI.
支持的系统Linux, Mac, Windows
功能特性
可以非常方便的操作 Docker 和 DockerCompose。可以帮助我们管理容器、Service服务本地远程都可以并监控他们
可以轻松跟踪 CPU、内存、网络、磁盘I/O、开放端口可以把常用的操作组织成一个项目通过项目的方式来检查容器状态以图形化的方式管理。
Docker Desktop 介绍Docker Desktop 是一款易于安装的应用程序使您能够构建和共享容器化应用程序和微服务。
官网地址Docker Desktop: The #1 Containerization Tool for Developers | Docker
支持的系统Mac, Windows
功能特性
能够以多种语言和框架在任何云平台上容器化和共享任何应用程序轻松安装和设置完整的 Docker 开发环境
包括最新版本的 Kubernetes自动更新让您保持最新状态和安全
在 Windows 上能够在 Linux 和 Windows Server 环境之间切换以构建应用程序使用本机 Windows Hyper-V 虚拟化实现快速可靠的性能
能够通过 Windows 机器上的 WSL 2 在 Linux 上本地工作代码和数据的卷安装包括文件更改通知和轻松访问本地主机网络上运行的容器
使用支持的 IDE 进行容器内开发和调试 Docker学习系列文章 十本你不容错过的Docker入门到精通书籍推荐 Docker日常工作常用命令 CentOS 8.4安装Docker Windows10 Docker安装详细教程 Ubuntu 20.04安装Docker Ubuntu添加非root用户到Docker用户组 Docker安装Redis并使用Another Redis Desktop Manager连接 Docker安装MySQL并使用Navicat连接 Docker安装MongoDB并使用Navicat连接 Docker安装MS SQL Server并使用Navicat远程连接 Ubuntu20.04dockerjenkins飞书实现自动化发布 参考文章
官方Docker-docs
Docker 10分钟快速入门-B站视频