前言

本教程属于自己撸的,禁止转载(除非获得授权)
本教程使用的系统是在VMware15里的Ubuntu 18.04LTS虚拟机。
其它linux系统的安装docker步骤略有不同。
本教程仅提供ubuntu的安装教程。
虚拟机配置如下:
2GB RAM
2 CPU
64GB HDD
注意:由于作者的疏忽,可能某些地方没有标出,你可以在下面发表评论补充,感谢你的提醒!

1.准备工作

1.1 准备材料

电脑是革命的本钱QAQ(或者拿个VPS也行)
系统就用Linux,推荐用Linux的Ubuntu系统
没有Linux系统的咋办?自己网上搜一下,装个Ubuntu虚拟机就是简单粗暴的解决方法QAQ

1.2 安装Docker

1.2.1 安装docker

当然,linux是以bash出名的QAQ
所以我们这次就用bash来安装docker
QAQ
首先更改你的apt镜像源(这个自行百度,懒得写QAQ。)
然后,打开终端
输入以下内容:

sudo apt-get install docker.io -y

这可能需要你的用户密码QAQ
让它在那里弄着,直到显示这样了,就是安装好了。

konnyaku@konnyaku-docker-vm:~$ sudo apt-get install docker.io -y
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
 bridge-utils cgroupfs-mount containerd git git-man liberror-perl pigz runc ubuntu-fan
建议安装:
 aufs-tools btrfs-progs debootstrap docker-doc rinse zfs-fuse | zfsutils git-daemon-run | git-daemon-sysvinit 
 git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki
 git-svn
 下列【新】软件包将被安装:
  bridge-utils cgroupfs-mount containerd docker.io git git-man liberror-perl pigz runc ubuntu-fan
 升级了 0 个软件包,新安装了 10 个软件包,要卸载 0 个软件包,有 446 个软件包未被升级。
 需要下载 56.9 MB 的归档。
 解压缩后会消耗 291 MB 的额外空间。
 获取:1 http://mirrors.aliyun.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB]
 获取:2 http://mirrors.aliyun.com/ubuntu bionic/main amd64 bridge-utils amd64 1.5-15ubuntu1 [30.1 kB]
 获取:3 http://mirrors.aliyun.com/ubuntu bionic/universe amd64 cgroupfs-mount all 1.4 [6,320 B]
 获取:4 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 runc amd64 1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2 [1,903 kB]
 获取:5 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 containerd amd64 1.2.6-0ubuntu1~18.04.2 [19.4 MB]
 获取:6 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 docker.io amd64 18.09.7-0ubuntu1~18.04.4 [30.7 MB]                                                                
 获取:7 http://mirrors.aliyun.com/ubuntu bionic/main amd64 liberror-perl all 0.17025-1 [22.8 kB]                                                                                         
 获取:8 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 git-man all 1:2.17.1-1ubuntu0.4 [803 kB]                                                                              
 获取:9 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 git amd64 1:2.17.1-1ubuntu0.4 [3,907 kB]                                                                              
 获取:10 http://mirrors.aliyun.com/ubuntu bionic/main amd64 ubuntu-fan all 0.12.10 [34.7 kB]                                                                                             
 已下载 56.9 MB,耗时 25秒 (2,237 kB/s)                                                                                                                                                  
 正在预设定软件包 ...
 正在选中未选择的软件包 pigz。
 (正在读取数据库 ... 系统当前共安装有 113693 个文件和目录。)
 正准备解包 .../0-pigz_2.4-1_amd64.deb  ...
 正在解包 pigz (2.4-1) ...
 正在选中未选择的软件包 bridge-utils。
 正准备解包 .../1-bridge-utils_1.5-15ubuntu1_amd64.deb  ...
 正在解包 bridge-utils (1.5-15ubuntu1) ...
 正在选中未选择的软件包 cgroupfs-mount。
 正准备解包 .../2-cgroupfs-mount_1.4_all.deb  ...
 正在解包 cgroupfs-mount (1.4) ...
 正在选中未选择的软件包 runc。
 正准备解包 .../3-runc_1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2_amd64.deb  ...
 正在解包 runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2) ...
 正在选中未选择的软件包 containerd。
 正准备解包 .../4-containerd_1.2.6-0ubuntu1~18.04.2_amd64.deb  ...
 正在解包 containerd (1.2.6-0ubuntu1~18.04.2) ...
 正在选中未选择的软件包 docker.io。
 正准备解包 .../5-docker.io_18.09.7-0ubuntu1~18.04.4_amd64.deb  ...
 正在解包 docker.io (18.09.7-0ubuntu1~18.04.4) ...
 正在选中未选择的软件包 liberror-perl。
 正准备解包 .../6-liberror-perl_0.17025-1_all.deb  ...
 正在解包 liberror-perl (0.17025-1) ...
 正在选中未选择的软件包 git-man。
 正准备解包 .../7-git-man_1%3a2.17.1-1ubuntu0.4_all.deb  ...
 正在解包 git-man (1:2.17.1-1ubuntu0.4) ...
 正在选中未选择的软件包 git。
 正准备解包 .../8-git_1%3a2.17.1-1ubuntu0.4_amd64.deb  ...
 正在解包 git (1:2.17.1-1ubuntu0.4) ...
 正在选中未选择的软件包 ubuntu-fan。
 正准备解包 .../9-ubuntu-fan_0.12.10_all.deb  ...
 正在解包 ubuntu-fan (0.12.10) ...
 正在设置 git-man (1:2.17.1-1ubuntu0.4) ...
 正在设置 runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.2) ...
 正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
 正在设置 liberror-perl (0.17025-1) ...
 正在设置 cgroupfs-mount (1.4) ...
 正在设置 containerd (1.2.6-0ubuntu1~18.04.2) ...
 Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /lib/systemd/system/containerd.service.
 正在设置 bridge-utils (1.5-15ubuntu1) ...
 正在设置 ubuntu-fan (0.12.10) ...
 Created symlink /etc/systemd/system/multi-user.target.wants/ubuntu-fan.service → /lib/systemd/system/ubuntu- fan.service.
 正在处理用于 systemd (237-3ubuntu10.12) 的触发器 ...
 正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
 正在设置 pigz (2.4-1) ...
 正在设置 git (1:2.17.1-1ubuntu0.4) ...
 正在设置 docker.io (18.09.7-0ubuntu1~18.04.4) ...
 正在添加组"docker" (GID 127)...
 完成。
 Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
 正在处理用于 ureadahead (0.100.0-20) 的触发器 ...
 正在处理用于 systemd (237-3ubuntu10.12) 的触发器 ...
 konnyaku@konnyaku-docker-vm:~$ 

然后,你还要更改一下镜像源

1.2.2 更换镜像源

由于某些不可描述的问♂题,后续拉取 Docker 镜像十分缓慢,所以我们要更换一下镜像源:
在终端里输入以下内容:

sudo vim /etc/docker/daemon.json

如果显示这样:

vim:command not found

那就要安装一下vim
输入:

sudo apt-get install vim -y

然后进入了vim的界面,先按i键,再把这些代码拷进去:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

按键盘左上角的esc键,然后敲:wq!退出

1.3 测试Docker的正确安装

打开终端,输入以下代码(你先要输入root密码):

sudo docker run -d ubuntu

你就会看见类似这样的反应

konnyaku@konnyaku-docker-vm:~$ sudo docker run -d ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5667fdb72017: Pull complete
d83811f270d5: Pull complete
ee671aafb583: Pull complete 
7fc152dfb3a6: Pull complete 
Digest: sha256:b88f8848e9a1a4e4558ba7cfc4acc5879e1d0e7ac06401409062ad2627e6fb58
Status: Downloaded newer image for ubuntu:latest
29f9e7d9c2a6aa843f988f972361785cef432b28ce92dfe988b3174111b99750
konnyaku@konnyaku-docker-vm:~$ 

看到了这些,就说明docker安装成功了!
如果出现这样的话,那就是你的安装没有成功,再根据1.2的步骤装一次吧!

konnyaku@konnyaku-docker-vm:~$ sudo docker run -d ubuntu
sudo: docker: command not found

还有一种情况,就是这样:

konnyaku@konnyaku-docker-vm:~$ docker run -d ubuntu
docker: Got permission denied while trying to connect to the Docker daemon socket at 
unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
konnyaku@konnyaku-docker-vm:~$ 

那就说明你没有使用sudo运行,因为docker需要sudo权限(GCP的泥骺了~)嘤嘤嘤
还有另外一种情况,是这样的:

konnyaku@konnyaku-docker-vm:~$ sudo docker run -d ubuntu
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
konnyaku@konnyaku-docker-vm:~$ 

那就说明你的docker服务没有运行嘤嘤嘤
所以需要先输入以下代码:

sudo service docker start

然后就可以开始食用docker啦~

2.简单的Docker操作

这种骚操作可能会让你恨不得把它删了QAQ

2.1 什么是Docker?

Docker是一个基于Go语言开发的软件。
你可以把Docker看作是一个小箱子,不会被其它的东西所干扰。(相当于苹果APP)
而且Docker是开源的!
Docker可以随时打包自己定制的系统,并可随时使用。

2.2 创建一个个的小箱子

其实Docker的优点就是创建一个个的小箱子QAQ
例如,你可以创建一个安装了Ubuntu系统的小箱子:

sudo docker run -d ubuntu

还可以创建一个安装了Centos系统的小箱子:

sudo docker run -d centos

而反应会类似这样

konnyaku@konnyaku-docker-vm:~$ sudo docker run -d ubuntu
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
5667fdb72017: Pull complete
d83811f270d5: Pull complete
ee671aafb583: Pull complete 
7fc152dfb3a6: Pull complete 
Digest: sha256:b88f8848e9a1a4e4558ba7cfc4acc5879e1d0e7ac06401409062ad2627e6fb58
Status: Downloaded newer image for ubuntu:latest
29f9e7d9c2a6aa843f988f972361785cef432b28ce92dfe9882b4b5c8b9a8097b
konnyaku@konnyaku-docker-vm:~$ 

或者是这样

konnyaku@konnyaku-docker-vm:~$ sudo docker run -d ubuntu
29f9e7d9c2a6aa843f988f972361785cef432b28ce92dfe9882b4b5c8b9a8097b
konnyaku@konnyaku-docker-vm:~$ 

你也许会问:后面跟着的那串东东是啥么鬼?
其实这是一个箱子唯一的编号(其实实际上叫它容器ID)

2.3 重启,开启,关闭小箱子里的系统

小箱子里的系统和我们普通的系统一样,都是可以重启的QAQ
但是有点儿复杂QAQ

2.3.1 关闭小箱子里的系统

其实很简单

sudo docker stop 箱子的编号

2.3.2 重启小箱子里的系统

这也很简单QAQ

sudo docker restart 箱子的编号

2.3.3 启动小箱子里的系统

还是很简单QAQ

sudo docker start 箱子的编号

2.4 删除小箱子

如果你不想要某个小箱子了,怎么把小箱子删除掉呢?
其实炒鸡简单

sudo docker rm 箱子的编号

如果出现这个问题,那你小箱子里的系统没有关闭,根据2.3.1的方法来关闭它吧~

konnyaku@konnyaku-docker-vm:~$ sudo docker rm 08
Error response from daemon: You cannot remove a running container 08e27ec797c5d8b5b232adf2e2be4082800968138ae919c190e6ee20f5872c6f. Stop the container before attempting removal or force remove
konnyaku@konnyaku-docker-vm:~$ 

3.比较复杂的Docker操作

到这里已经开始入土了QAQ~

3.1 进入小箱子