一、docker解决了什么问题
传统:运维部署的时候由于环境、配置、依赖、操作系统发行版、内核等差异,会很麻烦
docker: 将开发时的源码及所有运行所需的环境一并打包成镜像部署。一次构建,处处运行。运维只需要装doker就可以了。
镜像:从环境开始,自底至上打包应用。
二、和虚拟机的区别
A:虚拟机:虚拟机就是带环境安装的一种解决方案。它可以在一种操作系统中运行另一种操作系统。
缺点:1. 资源占用多 2.冗余步骤多 3.启动慢
不同:是运行一个完整的操作系统,在该操作系统中运行所需应用进程。
B: 容器技术(Linux Container, LXC) : Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件始终如一地运行。
不同:
1. 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此更加轻便。
2. 每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
三、doker三要素
A、镜像
1. 镜像(Image)就是一个只读的模板。镜像可以用来创建docker容器,一个镜像可以创建很多个容器。
B、容器
1. docker利用容器(container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动,开始,停止,删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的linux环境和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别是最上面那一层是可读可写的。
C、仓库
1. 仓库(repository)是集中存放镜像文件的场所。
2. 仓库(repository)和仓库注册服务器(registry)是有区别的。仓库注册服务器往往存放着多个仓库,每个仓库又包含着多个镜像,每个镜像有多个标签(tag)。
3. 仓库分为公开仓库和私有仓库两种形式。
4. 最大公开仓库是Docker Hub(https://hub.docker.com)
5. 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云,网易云等。
D、docker
1. docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过镜像文件才能生成docker容器。image可以看做事容器生成的模板,docker根据image生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。
四、centos安装docker
五、阿里云镜像加速
六、docker常用命令
A、帮助命令
1. docker version
2. docker info
3. docker help
B、镜像命令
1. docker images [options] (列出本地机上的images)
a.各列说明:
a. repository表示镜像的仓库源
b. tag镜像的标签
c. image id: 镜像id
d. created: 镜像创建时间
e. 镜像大小
b. options说明
a. -a: 列出所有镜像(包含中间印象层)
b. -q:只显示镜像id
c. --digests:显示镜像的摘要信息
d. --no-trunc:显示完整的镜像信息
2. docker search [options] 镜像名字 (搜索镜像)
a. options说明:
1) --no-trunc: 显示完整的信息
2) -s 收藏数:列出收藏数不小于该数的镜像
3)--automated: 只列出automated build类型的镜像(自动构建)
3. docker pull 镜像名字:tag (下载镜像)
4. docker rmi [-f] 镜像名1/id 1 镜像名2/id2(删除镜像)
a. docker rmi -f $(docker images -qa) (全部删除)
原文:https://www.cnblogs.com/DjanFey/p/11859208.html