什么是Docker?
Docker是基于Go语言实现的开源容器项目。Docker是一个为开发者和系统管理员提供的开发,部署和运行的容器应用程序。Linux使用容器开发应用程序的这种方式称为容器化。Docker项目已加入Linux基金会,并遵循Apache2.0 协议,全部开源代码再http://github.com/docker 项目仓库进行维护。
Docker中包括三个基本概念:容器(Container)、镜像(Image)、仓库(Repository)
先来看看容器较为官方的解释:容器就是将软件打包成基本单元,用来开发、交付和部署。
Docker中的Image镜像相当于是一个文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。
镜像可以基于Dockerfile
构建,Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。
用户可以通过编写Dockerfile创建新的镜像,也可以直接从类似github的Docker Hub上下载镜像使用。
如果你使用过 git
和 github
就很容易理解Docker的仓库概念。Docker仓库相当于一个 github
上的代码库。
Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Registry)来保存多个仓库,每个仓库又可以包含多个镜像。
它们的范围大小依次是 仓库 > 镜像 > 容器
前面说到,容器在Linux上本机运行,并与其他容器共享主机的内核。它运行一个独立的进程,不占用任何其他可执行文件的内存,使其轻量级。
相比之下,虚拟机运行一个完整的客户操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM提供的环境比大多数应用程序需要的资源更多。
下面这幅图很好的表述了这一点
这或许也就能解释 Docker 如此流行的原因
下图是Docker容器技术与传统虚拟机技术的比较:
特性 | 容器 | 虚拟机 |
---|---|---|
启动速度 | 秒级 | 分钟级 |
性能 | 接近原生 | 较弱 |
内存代价 | 很小 | 较多 |
硬盘使用 | 一般为MB | 一般为GB |
运行密度 | 单机支持上千个容器 | 一般为几十个 |
隔离性 | 安全隔离 | 完全隔离 |
迁移性 | 优秀 | 一般 |
一项技术或者软件的流行都是为了解决某种问题应用而生的,那么话说回来了,Docker解决了什么问题呢?
但是Docker解决了这个问题,应用程序的各种依赖和环境都直接部署在Docker的容器中,起到隔离一切的目 的,就像是下图所示的这样
下面就开始你的Docker搭建之旅吧!!!
我为你准备了下面四种环境的docker安装教程,你可以根据教程来实现安装
Ununtu Docker安装
:https://www.runoob.com/docker/ubuntu-docker-install.html
CentOS Docker安装
:https://www.runoob.com/docker/centos-docker-install.html
Windows Docker安装
:https://www.runoob.com/docker/windows-docker-install.html
MacOS Docker安装
:https://www.runoob.com/docker/macos-docker-install.html
docker --version
确保你的系统已经支持了dockerdocker info
(没有 - )以查看有关Docker安装的更多详细信息:等等
列出Docker CLI 命令
docker
docker container --help
显示docker version 和 infodocker --version
docker version
docker info
执行docker图像docker run hello-world
列出docker 映像docker image ls
列出docker容器docker container ls
docker container ls --all
docker container ls -aq
参考:
http://dockone.io/article/6051
DOCKER 概念及基本用法
《Docker实战》
点个赞,证明你还爱我