Docker是一个开放平台,用以开发、交付和运行应用系统。Docker通过启动轻量级的容器,可以打包发布完整可交付的应用系统。不同的容器之间是互相隔离的。
Docker容器是一个分层设计的运行实例,一个容器内部可以有多个层次,每个层次对应一个文件系统。
Docker镜像文件image用以构建Docker容器实例。事实上,image就是Docker容器中的一个层次,后续可以直接给Docker容器添加新的image层次,而无需更新已有的image。
dockerfile是一个文本的文档,用以定义Docker镜像image文件的构成。基于dockerfile可以构建得到Docker镜像image文件。
1. Docker的版本- Docker Community Edition (CE)
- stable
- edge
- Docker Enterprise Edition (EE)
Linux/UNIX中,可以直接通过Docker镜像库在线安装,也可以下载DEB包并手工安装和升级。
Windows中还需要Docker toolbox(virtualbox)。
2.1 Linux/UNIX中在线镜像库安装
1) 设置apt能够通过HTTPS访问Docker镜像库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
2) 设置Docker的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3) 设置访问stable版本镜像库(edge版本也是该库)
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
这里采用ARM64架构的版本,此外还有ARMHF架构
4) 更新apt的package index
sudo apt-get update
5) 安装Docker CE最新版本
sudo apt-get install docker-ce
6) 或者安装Docker CE指定版本
apt-cache madison docker-ce
sudo apt-get install docker-ce=<VERSION>
7) 验证
sudo docker run hello-world
2.2 Linux/UNIX中,下载DEB包并手工安装Docker CE
1) 下载DEB文件
https://download.docker.com/linux/ubuntu/dists/
2) 安装执行
sudo dpkg -i /your/download/path/to/package.deb
3) 验证
sudo docker run hello-world
2.3卸载Docker CE
sudo apt-get purge docker-ce
sudo rm -rf /var/lib/docker
3.Docker的组成
1) Docker Engine是一个CS架构的应用,包含如下组件:
- Daemon进程dockerd,创建管理各种Docker对象
- builds images
- runs and manages containers
- manages networks
- manages volumes
- REST API
- CLI客户端docker
- 基于Docker REST API的一系列docker命令
Docker对象包括images, containers, networks, volumes, plugins和services等等
2) Docker Registries是Docker的镜像文件库
公共的Docker Registries:
- Docker Hub,默认镜像文件库
https://hub.docker.com
- Docker Cloud
3) Docker store是交易或交流镜像文件的市场
4) Docker services,基于Docker Swarm的多个节点(即多个Docker容器实例)运行的单一应用。
- managers node
- workers node
5) Docker namespaces
- pid
- net
- ipc
- mnt
- uts
6) Docker统一的文件系统UnionFS
7) Docker容器格式,默认为libcontainer
4. Docker workflow
- find an image from Docker Hub
- pull an image
- run an image on Docker Engine
- stop a container isntance
- remove a container isntance
- remove an image
- your app
- your data
- logging
- remote access
- network configuration
- monitoring
参考文献
旧官网https://www.docker.io/
https://www.docker.com/
https://github.com/docker
https://docs.docker.com/
https://docs.docker.com/engine/docker-overview/
http://hub.docker.com
https://wiki.lmera.ericsson.se/wiki/Docker