简述
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
Docker是什么?
Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初是dotCloud公司发起。
Docker通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里应用组件,即可以是Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。
Docker由镜像(Image)、容器(Container)、仓库(Repository) 三大核心组成。
1.镜像
Docker运行容器前需要本地存在对应的镜像。
镜像可以用来创建Docker容器的。一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序。在docker hub 里面有大量现成的镜像提供下载。docker的镜像是只可读的,一个镜像可以创建多个容器。
2.容器
docker利用容器来开发、运行应用。
容器是镜像创建的实例。它可以被启动、开始、停止、删除。每个容器都是 相互隔离的、保证安全的平台。
3.仓库
仓库是集中存放镜像文件的场所。
每个 仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
最大的公开仓库是DockerHub,存放了数量庞大的镜像供用户下载。国内的公开 仓库包括DockerPool等,可以提供大陆用户更稳定快速的访问。当然,用户也可以在本地网络内创建一个私有仓库。
为什么要用Docker?
更快速的交付和部署(使用docker,开发人员可以用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码。)
更轻松的迁移和扩展(docker容器几乎可以在任意平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。可以在不同的平台轻松地迁移应用)
更简单的更新管理(使用Dockerfile,只需要修改小小的配置,就可以替代以往大量的更新工作)
与传统虚拟机对比:
Docker的安装:
Docker 要求 Linux系统的内核版本高于 3.10 。
详细安装教程参考官网 https://docs.docker.com/installation/ ,可以支持在线安装和离线安装。
安装完成后可以使用docker -v 命令查看
docker version命令返回安装的docker的版本详细信息,分客户端和服务器:
查看docker主机上已有的docker镜像
命令:docker images
执行该命令,会列出主机上已经下载的docker镜像,本地镜像都保存在主机的 /var/lib/docker 目录下。
查看dokcer主机上已经创建的容器
命令: docker ps -a -q
说明 -a表示列出所有容器(包括停止运行的容器),否则只会列出运行中的容器。
开启远程访问
因为我们开发环境是windows,为了在windows机器上能访问docker进行相关操作,这里需要在linux上开放一个端口并启用远程访问
(1)我们修改/etc/default/docker,然后重启docker服务即可。
# vim /etc/default/docker
DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375"
# service docker restart
(2)windows机器上配置环境变量DOCKER_HOST
现在本地和远程均可通过2375端口访问docker进程了,可以在windows下使用dockerfile进行打包了。