初识Docker
1、简介
Docker
是一个开源的应用容器引擎,它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。
鲸鱼上载满了集装箱 → 容器技术
docker
是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,即可以把hello word
放在docker
中,也可以把网站放入docker
中,我们可以把任何想得到的程序都可以放在docker
中。
2、了解Docker
参考文档:https://blog.csdn.net/q610376681/article/details/90483576
2.1 docker思想
2.1.1 集装箱(容器技术)
没有集装箱之前运输货物,东西零散容易丢失,有了集装箱之后货物不易丢失,假如我们把程序想象成货物,我们现在要把程序部署到一台新的机器上,在此过程中可能因为少一些配置文件或少一些什么数据,程序可能就运行不起来了,有了docker
就可以保证我们的程序不管运行在哪都不会缺东西。
2.1.2 标准化
- 运输方式
docker
运输东西有一个超级码头,任何地方需要货物都由鲸鱼先送到超级码头,然后再由鲸鱼从超级码头把货物送到目的地去。比如我们要把台式机的应用部署到笔记本上,我们的方法有很多,比如可以选择用QQ
发过去或者用U盘
拷过去……,docker
就标准化了这个过程,我们只需在台式机上执行一个docker
命令,把鲸鱼召唤过来,把程序送到超级码头去,再在笔记本上执行一个docker
命令,然后由鲸鱼把程序从超级码头送到笔记本上去即可。
- 存储方式
当我们把程序存储到笔记本上时,我们需要一个目录,且我们要记住这个目录,因为下次我们可能还要修改,有了docker
之后我们就不用记住了程序在哪里了,我们使用的时候只需要一条命令就行了。
- API接口
docker
提供了一系列rest api
的接口,包含了对docker
,也就是对我们的应用的一个启动、停止、查看、删除等等,假如当我们要启动tomcat时我们要执行startup命令,当我们要停止时要执行shutdown命令,如果不是tomcat,我们可能还需要一些别的命令,有了docker我们记docker的命令就可以对其进行操作。
3、Docker 架构
Docker 包括三个基本概念:
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统(Root FileSystem,简称为rootfs)。【了解root文件系统】
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
3.1 镜像
我们可以将 Docker 镜像理解为包含应用程序以及其相关依赖的一个基础文件系统,在 Docker 容器启动的过程中,它以只读的方式被用于创建容器的运行环境。
3.2 容器
容器和镜像一样,也是若干层的叠加,唯一区别是所有只读层的最上面一层,是一层可读可写层,可以记住这个简单的公式:容器 = 容器镜像 + 可读可写层。
3.3 仓库
仓库(Repository)是最易理解的部分,大家都用过Node的包管理Npm,这个概念是一致的,仓库分为两种,本地及远程,当我们build好一个镜像后,这个镜像会先存放到本地仓库,当我们需要利用网络进行分发时,我们可以push到远程仓库,后续通过网络下载使用。
4、Linux 常用命令
docker images ^查看镜像(列出本地主机上的镜像)
docker search +镜像名字 ^查找镜像
docker pull +镜像名字 ^下载镜像
docker ps ^查看启动容器
docker ps -a ^查看所有容器
docker rm +容器id ^删除选中的容器
docker rmi +镜像id ^删除选中的镜像
docker image rm -f +镜像id ^强制删除选中镜像
docker logs -f --tail 100 +容器名 ^跟踪容器yyy的实时日志100行
docker stop yyy ^暂停yyy容器
docker start yyy ^启动断开的容器
rm -rf * ^删除当前目录下所有的文件