Docker笔记

原文 http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html 参考

一、环境配置的难题

当某个应用程序可以在某个机器上Run的时候,不代表在别的机器上也可以运行。可能会因为缺少配置文件等环境依赖而无法运行,配置环境会变得十分的麻烦。所以能不能根本上解决问题,软件可以带环境去安装,即安装该软件的时候把环境也一并复制过来。

二、虚拟机

虚拟机(virtual machine)就是带环境安装的一种解决方案。但是虚拟机启动慢,占用资源多,冗余步骤多。

三、Linux容器

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。启动快,占有资源小,体积小。

四、Docker

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

五、Docker安装

1.安装docker 可在官网安装。

2.通过 docker version  或者 docker info 查看是否安装成功。

3.把当前用户加入Docker用户组,否则有权限限制。

4.Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。

六、Image镜像

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。

image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

查看本机的所有image文件

docker image ls 

七、实例 hello world

docker image pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

docker container run命令会从 image 文件,生成一个正在运行的容器实例。

docker container run hello-world

注意,docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull命令并不是必需的步骤.

八、容器文件

image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

列出本机正在运行的容器

docker container ls

列出本机所有的容器,包括停止运行的容器

docker container ls -all

结束正在运行的容器,无法kill停止运行的容器,

docker container kill containerID

终止运行的容器文件,依然会占据硬盘空间。使用下面命令可以清除。

docker container rm containerID

九、Dockerfile文件

学会使用 image 文件以后,接下来的问题就是,如何可以生成 image 文件?如果你要推广自己的软件,势必要自己制作 image 文件。

这就需要用到 Dockerfile 文件。它是一个文本文件,用来配置 image。Docker 根据 该文件生成二进制的 image 文件。

十、docker数据卷 

数据卷存在于宿主机中,独立于容器,和容器的生命周期是分离的,数据卷存在于宿主机的文件系统中,数据卷可以目录也可以是文件,容器可以利用数据卷与宿主机进行数据共享,实现了容器间的数据共享和交换。

数据卷的特点:

1.容器启动的时候初始化的,如果容器使用的镜像包含了数据,这些数据也会拷贝到数据卷中。

2.容器对数据卷的修改是及时进行的。

3.数据卷的变化不会影响镜像的更新。数据卷是独立于联合文件系统,镜像是基于联合文件系统。镜像与数据卷之间不会有相互影响。

4.数据卷是宿主机中的一个目录,与容器生命周期隔离。

posted @ 2021-02-20 08:24  最爱吃汤圆27  阅读(27)  评论(0编辑  收藏  举报