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的安装方式。