它非常的轻量级. 可以举一些例子

时间:2022-06-09 04:55:25

为什么要用Docker?

如果我们想使用某种pc软件, 那么在互联网上查找并安置软件的流程大抵如下图:

它非常的轻量级. 可以举一些例子

那么这就有几个问题要弄清楚:

从哪里获得软件

App Store

Linux的承打点

从某些网站直接下载

软件是否供给了相关信息和数据

例如风行度, 下载次数, 存在的bug, 上次的更新时间等等.

信任问题

下载软件的网站是否为官方网站

http 还是 https

代码

是否还可以下载

是否收费

第一个令人困扰的问题: 安置软件

软件是否撑持我的操纵系统/版本

是否撑持我的设备的CPU架构

软件的格局

有些是从源码进行安置

有些是单独的exe文件

有的是exe+dlls

有时候是exe+dlls+依赖某些运行时

软件的安置方法

有自带的安置器

使用承打点工具安置

手动安置

软件的更新和卸载

自动更新?

软件的配置(对付新手来说可能这就是个恶梦)

从上面这些问题可以看出, 此刻这个年代, 安置个软件真是个挺麻烦的事, 尤其是用于开发相关的软件, 有时候让人头疼.

第二个问题: 软件的运行

这方面可能会存在以下问题:

是否有详细的辅佐文档

软件在哪运行

是否需要手动改削系统某些设置

是否需要设置环境变量PATH

如何开始, 如何结束

是否需要注册处事

如何注册处事

是否需要手动编写处事配置

是否需要许可

如何安置和运行软件的依赖项

如果没找到依赖项会怎么措置惩罚惩罚

循环的依赖项

安适性, 沙箱运行?

粉碎性更新

系统更新是否对软件有粉碎性影响

共享的库有更新

什么是容器

Docker不是虚拟机的替代者, docker不是虚拟化技术, 它更多是关于软件的运行.

什么是容器,它和虚拟机有什么区别?

首先介绍一下虚拟机:

它非常的轻量级. 可以举一些例子

虚拟机打点其把处事器的硬件资源(CPU,内存,硬盘,网络等)切割成多个虚拟的版本, 然后基于这些虚拟的硬件成立操纵系统.

虚拟机成立的系统就像是正常的系统处事一样.

与虚拟机打点器差别, Docker或者其他的容器引擎切割的是操纵系统的资源, 例如进程的定名空间, 网络栈, 存储栈等等:

它非常的轻量级. 可以举一些例子

每个容器都有PID为1的进程, 每个容器也都有本身的根文件系统(windows的C盘, linux的/).

所以docker可以称作是对针对操纵系统的虚拟化操纵, 它非常的轻量级.

可以举一些例子, 安置 sql server, mysql, mongodb, postgresql 等, 下载, 安置, 配置. 有的还是挺麻烦的.

下面看看使用docker会怎么样, 首先需要安置docker.

安置Docker

Docker for windows 下载地点: https://store.docker.com/editions/community/docker-ce-desktop-windows

安置好docker后, 系统右下角托盘处会有docker的图标, 等到图标不再闪烁了, 说明docker已经启动告成了.

右键点击图标有Settings.

可以通过命令行看一下docker的状态:

docker version

它非常的轻量级. 可以举一些例子

可以看到client是windows, server是linux(系统需要启用Hyper-V)虚拟机.

从Hyper-V打点器可以看到这个linux虚拟机:

它非常的轻量级. 可以举一些例子

使用Docker的例子: Postgresql

首先去 https://hub.docker.com/ 这里查找需要使用的软件, 例如postgresql : https://hub.docker.com/_/postgres/

它非常的轻量级. 可以举一些例子

从页面可以看到 postgres是docker官方承认的库. 页面的下方有使用说明等.

首先别忘了运行docker.

然后从docker hub下载postgres这个软件(应该叫image), 命令行执行:

docker pull postgres

下载的过程有时候对照慢, 尤其是在国内 (如果速度实在太慢, 那么可以使用阿里云的容器镜像: https://dev.aliyun.com/search.html?spm=5176.1972343.0.1.340c5aaafU9rRJ):

它非常的轻量级. 可以举一些例子

等了一段时间之后, 下载完毕:

它非常的轻量级. 可以举一些例子

此刻image已经下载了, 那么接下来就是需要通过某种方法运行这个image, 这就涉及到了container容器.

容器就像是一个已经安置好的软件, 它卖力把这个image配置并安置好, 然后就可以运行这个安置好的postgresql了.

普通的软件安置好之后运行的是exe, 而这个运行的是容器, 容器里面是postgresql.

整个针对普通的软件安置的流程如下:

它非常的轻量级. 可以举一些例子

docker run 命令

docker run 这个命令会一次性执行上面整个流程.