Docker 学习 | 第一篇:Docker简介以及安装
Docker简介
Docker是一个开源的引擎,它提供了为应用程序创建轻量级/可移植/高效的容器方案。支持部署到本地和云平台环境。使用Docker有很多好处,比如更快的交付和部署,更高效的资源利用,更轻松的迁移。它的应用场景包括Web应用的自动化打包部署,自动化测试,持续集成等。balabala一大堆,无论你是一个开发、运维还是测试都应该了解和掌握Docker的使用。
Dokcer基本概念
Docker的大部分操作都围绕着它的三大核心概念:
- 镜像
- 容器
- 仓库
镜像
Docker中的镜像类似于虚拟机的镜像,可以理解为一个只读的模板。比如,一个镜像包含一个基本操作系统环境,或者包含某个应用程序正确运行所需的运行环境。镜像是创建Docker容器的基础,通过镜像的版本控制,Docker提供了十分简单的机制来创建和更新镜像,也可以直接下载已经做好的应用镜像,并直接使用。
分层存储
镜像构建时,会一层一层的构建,前一层是后一层的基础,每一层构建完就不会发生改变,后一层所有的改变都不会影响前一层的。比如删除前一层的文件,其实并不是删除了前一层的文件,只是标记为已删除,在容器运行的时候,不会看到这个文件,但是实际上文件还存在。
分层存储的特征让镜像的复用变得容易,比如可以以之前建好的镜像作为基础层,然后逐步添加新的层,以定制自己所需的内容。
容器
Docker容器类似一个轻量级的沙盒,Docker利用容器来运行和隔离应用,容器是从镜像创建的应用运行示例,可以对它进行启动,停止,删除等操作。
可以理解容器为一个简易版的Linux操作系统环境,包括某些应用程序打包而成的盒子。
Docker仓库
Docker仓库类似代码仓库,是Docker用来集中存放镜像的地方。Docker仓库根据镜像是否公开分为公开仓库和私有仓库,目前最大的公开仓库是官方提供的Docker Hub,其中存放了大量的镜像供用户下载。同时,国内不少云服务提供商也提供了仓库的本地源,可以提高稳定的国内访问。
关于私有仓库,用户可以自行搭建本地仓库,用于维护私有的镜像。
安装Docker
Docker支持主流的操作系统,例如Ubuntu/Debian/ContOs/Redhat等Linux操作系统,MacOs操作系统,Window操作系统。
Linus操作系统安装Docker
Docker官方提供了shell脚本用于在Linux系统上安装Docker的最新正式版本。
安装Docker可以使用如下命令
curl -fsSL https://get.docker.com/ | sh
安装完毕之后,需要启动Docker,各种操作系统的启动方式不一样,但是大体上通过以下两种方式启动:
systemctl start docker
service docker start
MacOs安装Docker
访问https://docs.docker.com/docker-for-mac/
下载页面,然后下载对应的安装包,下载完毕打开安装包,然后把Docker.app拖到Applicaiotns文件夹中即可。
Window安装Docker
这里由于笔者没有在Window安装并使用过Docker,所以这部分内容这里就不发表意见了。请自行搜索安装方式。
镜像加速器
国内拉取Docker Hub镜像的时候会很慢,所以可以配置Docker提供的中国Registry mirror,这样速度就会快很多啦
Ubuntu 14.04、Debian 7 Wheezy
对于使用upstart
的系统而言,编辑 /etc/default/docker
文件,在其中的DOCKER_OPTS
中
添加获得的加速器配置:
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
重新启动服务。
$ sudo service docker restart
Ubuntu 16.04+、Debian 8+、CentOS 7
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存
在请新建该文件)
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
注意,一定要保证该文件符合json规范,否则Docker将不能启动。
之后重新启动服务。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
验证是否配置成功:
docker info
如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://registry.docker-cn.com/
如果在docker info
中看到如下警告信息:
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
请执行如下命令
tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
重新加载sysctl
sysctl -p
总结
此篇文章简要介绍了Docker是什么,但是由于对Docker理解不够深入,可能有些说法有失偏颇,勿喷。另外还介绍了Docker的基本概念,以及粗劣介绍了Docker的安装方式。