如果你只是想安装Docker或Docker compose,请直接跳到末尾。

# Docker是什么

Docker是是一个开源的应用容器引擎,实现从文件系统、网络互联到进程的隔离,并且极大的简化了容器的创建和维护。

Dockers是在操作系统层面实现的虚拟化,相对传统虚拟机技术更为轻便、快捷,性能开销极低。

传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

# 为什么使用Docker

在部署个人服务器应用方面,docker拥有很多的优点。

# 部署简便

Docker相对普通的一步步配置基础环境简便了很多,因为这些工作已经由容器制作者完成了,我们通常仅需一行命令即可完成服务器应用的部署。

有了Docker的协助,我们就不必折腾各种环境问题。许多环境问题对于新手来说是十分棘手的,且十分浪费精力时间。人生苦短,我选Docker。

容器的销毁也十分简单,直接一行命令删除即可,无需担心文件和配置修改的遗留。

# 迁移轻松

Docker可以确保了执行环境的一致性,使得应用的迁移更加容易。Docker可以在很多平台上运行,无论是物理机、虚拟机、公有云,甚至是笔记本、树莓派,其运行结果是一致的(注:在不同cpu架构能否运行还是要看具体容器应用支持与否,例如很多容器应用只支持x86架构)。因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。

# 性能开销低

由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。即便相对原始部署,虚拟化开销也是比较低。

# 安装Docker

强烈推荐替换默认镜像源为国内加速源,国外的官方源速度相当缓慢

# Linux安装Docker

此处以CentOS7为例

#step1 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 

#step2 添加yum源
yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

#step3 安装Docker社区版并启动
yum -y install docker-ce docker-ce-cli containerd 
systemctl start docker

#step4 配置Docker国内镜像加速
#由于国内网络问题,不修改后面拉取镜像的速度会太慢
vi /etc/docker/daemon.json 
#写入如下内容并保存(更新:由于下面这个源仍然速度比较慢,强烈推荐使用阿里云等的国内加速源)
{ "registry-mirrors": ["https://registry.docker-cn.com"] }

#step5 重新启动服务
systemctl daemon-reload
systemctl restart docker 

# Windows安装Docker

到官网下载并安装Docker Desktop for Windows,一路确认即可,注意需要注册账号。

# 申请阿里云国内源

// todo

# 安装Docker Compose

# 可切换为国内源,github上的比较缓慢
# curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose