概述
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
内部结构
Docker使用C/S架构模式,Docker客户端会与Docker守护进程通信。Docker守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。Docker 客户端和守护进程之间通过 socket 或者 RESTful API 进行通信。
Docker分为三种部件:
- Docker镜像-Docker Images
- Docker容器-Docker Containers
- Docker仓库-Docker Registeries
Docker镜像
Docker运行容器前需要本地存在对应的镜像。Docker镜像可以用来创建Docker容器,一个镜像可以包含一个完整的操作系统环境和用户需要的其他应用程序。
Docker镜像是只可读的,一个镜像可以创建多个容器。
通俗说,Images是已经打包好的环境文件,我们运行的时候把Images加载运行在本地容器中,你在这个容器中可以进行一些修改重新打包成新镜像上传。
分层存储
因为镜像包含操作系统完整的root文件系统,其体积往往是巨大的,因此Docker设计时,就充分利用Union FS技术,将其设计为分层存储的架构。
分层存储的特征使得镜像并非像一个ISO类似的打包文件,而是由一组文件系统组成。
Docker容器
Docker利用容器来开发、运行应用。容器是镜像创建的实例,可以被开始、启动、停止、删除。每个容器都是相互隔离的。
Docker仓库
仓库是集中存放镜像文件的场所。每个仓库中包含了多个镜像,每个镜像有不同的标签。
最大的公开仓库是DockerHub),因为墙的原因,可以使用DaoCloud、阿里云)加速下载。
安装
- Win10版本Docker安装以下版本Docker Community Edition 17.12.0-ce
- Win10之前版本安装Docker ToolBox,官方文档
安装之前,需要开启Windows10的
Hpyer-V
。控制面板-程序-启用或关闭Windows功能
本文以
Docker Community Edition
为例,开启Hpyer-V
后直接安装Docker Community Edition
即可。安装成功后,运行
cmd
,执行docker version
,安装成功则显示下图
设置Docker
任务栏鲸鱼图标右键-Settings
打开设置界面
Shared Drivers
:可以将主机(即Windows)中的驱动器共享到Docker Container中Advanced
:用于配置运行Docker Daemon的虚拟机环境的CPU和内存和镜像路径Network
:配置Docker的网络环境Proxies
:代理的配置Docker Daemon
:使用JSON格式的设置,对Docker Daemon进行设置,类似于在Linux中利用conf文件对Docker设置。
修改CPU数目及内存
点击Advanced
,如下图修改参数即可
修改代理
Docker Hub
速度较慢,修改为阿里云镜像。
登陆容器Hub服务,找到以下链接
点击Daemon
设置镜像,直接在Registry mirrors
中填写阿里云的镜像地址,点击Apply
重启应用即可。
更改镜像默认存储路径
打开Docker的Settings
,点击Advanced
,在Images and volumes VHD location
选择新的路径。重启后即可更新设置。
常用命令
查看Docker版本
docker version |
查看本机已安装镜像
docker images |
查看所有容器
docker ps -a |
拉取镜像
docker pull Name:Tag |
【例】
docker pull sameersbn/redmine:latest |
删除单个容器
docker rm Name/ID |
删除所有的容器
docker rm docker ps -a -q |
停止、启动、杀死一个容器
docker stop Name/ID |