Docker详细使用教程(一)简介与安装

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
在这里插入图片描述

简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。

镜像:一个特殊的文件系统

操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。

Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

镜像不包含任何动态数据,其内容在构建之后也不会被改变。

Docker 设计时,就充分利用 Union FS 的技术,将其设计为分层存储的架构。 镜像实际是由多层文件系统联合组成。

镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。

比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。

在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。

容器:镜像运行时的实体

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。前面讲过镜像使用的是分层存储,容器也是如此。

容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据 ,容器存储层要保持无状态化。

所有的文件写入操作,都应该使用数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此, 使用数据卷后,容器可以随意删除、重新 run,数据却不会丢失。

安装Docker

安装须知链接:https://docs.docker.com/docker-for-windows/install/#what-to-know-before-you-install
若docker官网无法下载,可以使用如下下载地址安装:
http://get.daocloud.io/
https://oomake.com/download/docker-windows

安装完后,会提示点击重启电脑。重启后会自动启动Docker程序,如果弹出下图所示提示,则需要在Windows 功能中启用Hyper-V功能和 在BIOS CPU配置中打开 “虚拟化配置”,打开之后,如下图所示,虚拟化会显示已启用。反之安装成功
在这里插入图片描述
以上配置完成后我们推荐将docker容器切换到Linux环境,选择右下角Docker图标右键选择” Switch to Linux containers”进行切换,如果显示” Switch to Windows containers”则已处于Linux容器。

然后测试Docker环境是否正常,打开命令行,输入docker –version:

docker配置:
Docker for Windows 中的共享驱动器必须配置为支持卷映射和调试。右键单击系统托盘中的 Docker 图标,单击“设置”,然后选择“共享驱动器”。 选择 Docker 存储文件的驱动器。 单击“应用”。
在这里插入图片描述

发布了41 篇原创文章 · 获赞 8 · 访问量 1952

猜你喜欢

转载自blog.csdn.net/big_white_py/article/details/103437661