docker安装
Docker
的安装和使用有一些前提条件,主要体现在体系架构和内核的支持上。对于体系架构,除了 Docker
一开始就支持的 X86-64
,其他体系架构的支持则一直在不断地完善和推进中。
Docker
分为 CE
和 EE
两大版本。 CE
即社区版(免费,支持周期 7
个月), EE
即企业版,强调安全,付费使用,支持周期 24
个月。
我们在安装前可以参看官方文档获取最新的 Docker
支持情况,官方文档在这里:
https://docs.docker.com/install/
Docker
对于内核支持的功能,即内核的配置选项也有一定的要求(比如必须开启 Cgroup
和 Namespace
相关选项,以及其他的网络和存储驱动等), Docker
源码中提供了一个检测脚本来检测和指导内核的配置,脚本链接在这里:
https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh
在满足前提条件后,安装就变得非常的简单了。
Docker CE
的安装请参考官方文档:
MacOS
:https://docs.docker.com/docker-for-mac/install/Windows
:https://docs.docker.com/docker-for-windows/install/Ubuntu
:https://docs.docker.com/install/linux/docker-ce/ubuntu/Debian
:https://docs.docker.com/install/linux/docker-ce/debian/CentOS
:https://docs.docker.com/install/linux/docker-ce/centos/Fedora
:https://docs.docker.com/install/linux/docker-ce/fedora/- 其他
Linux
发行版:https://docs.docker.com/install/linux/docker-ce/binaries/
这里我们以 CentOS7
作为本文的演示。
也可以参考这篇博客https://www.cnblogs.com/mybxy/p/10576399.html
环境准备
- 阿里云服务器(1核2G,1M带宽)
- CentOS 7.4 64位
由于 Docker-CE
支持 64
位版本的 CentOS7
,并且要求内核版本不低于 3.10
首先我们需要卸载掉旧版本的 Docker
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
我们执行以下安装命令去安装依赖包:
记得修改镜像源
国外镜像一般很难访问,建议配置阿里云镜像。yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
这里我事先已经安装过了,所以提示我已经安装了最新版本
安装Docker
Docker
软件包已经包括在默认的 CentOS-Extras
软件源里。因此想要安装 docker
,只需要运行下面的 yum
命令
$ sudo yum install docker
当然在测试或开发环境中 Docker
官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS
系统上可以使用这套脚本安装:
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
具体可以参看 docker-install
的脚本:
https://github.com/docker/docker-install
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE
的 Edge
版本安装在系统中。
安装完成后,运行下面的命令,验证是否安装成功:
docker version
or
docker info
返回docker的版本相关信息,证明 docker
安装成功
启动Docker-CE
$ sudo systemctl enable docker
$ sudo systemctl start docker
Docker的简单运用---Hello World
由于服务器日常崩溃了, docker
出了点问题,所以以下案例的演示是基于 Kali Linux
环境下进行的。
我们通过最简单的 image
文件 hello world
,感受一下 Docker
的魅力吧!
我们直接运行下面的命令,将名为 hello-world
的 image
文件从仓库抓取到本地。
docker pull library/hello-world
docker pull images
是抓取 image
文件, library/hello-world
是 image
文件在仓库里面的位置,其中 library
是 image
文件所在的组, hello-world
是 image
文件的名字。
抓取成功以后,就可以在本机看到这个 image
文件了。
docker images
我们可以看到如下结果:
现在,我们可以运行 hello-world
这个 image
文件
docker run hello-world
我们可以看到如下结果:
输出这段提示以后,hello world
就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。
是不是很 easy
呢?我们从上面可以看出, docker
的功能是十分强大的,除此之外,我们还可以拉去一些 Ubuntu
, Apache
等镜像,在未来的教程中我们将会一一提到。
Docker
提供了一套简单实用的命令来创建和更新镜像,我们可以通过网络直接下载一个已经创建好了的应用镜像,并通过 Docker RUN
命令就可以直接使用。当镜像通过 RUN
命令运行成功后,这个运行的镜像就是一个 Docker
容器啦,容器可以理解为一个轻量级的沙箱, Docker
利用容器来运行和隔离应用,容器是可以被启动、停止、删除的,这并不会影响 Docker
镜像。
我们可以看看下面这幅图:
Docker
客户端是 Docker
用户与 Docker
交互的主要方式。当您使用 docker
命令行运行命令时, Docker
客户端将这些命令发送给服务器端,服务端将执行这些命令。 docker
命令使用 docker API
。 Docker
客户端可以与多个服务端进行通信。
我们将剖析一下 Docker
容器是如何工作的,学习好Docker容器工作的原理,我们就可以自己去管理我们的容器了。