Docker 学习之旅(一):Docker 的安装
所以之前弄得都差不多算是白弄了,一切还需要从头开始。
由于使用的环境为 Ubuntu 的 16.10 最新稳定版本,所以打开 Ubuntu 的文档进行安装,以下命令全部来源于官方文档。
为了防止惨剧的再次发生,记录下此时的版本,页面右上角显示为 Docker 17.03。
卸载旧版本
文档链接:https://docs.docker.com/engine/installation/linux/ubuntu/#uninstall-old-versions
因为安装了旧版本的 Docker,所以需要先卸载老版本,当然没有安装过就不需要进行这一步了。
1 | $ sudo apt-get remove docker docker-engine |
安装 Docker
文档链接:https://docs.docker.com/engine/installation/linux/ubuntu/#install-docker
因为 Docker 是有 Ubuntu 的源的,所以直接采用 apt 安装,方便快捷。
之前忘记说了,此次更新 Docker 有了两个版本,分别是 Docker CE 和 Docker EE。从名字其实就可以大概猜出,一个是普通版(其实是社区版)一个是企业版。所以,当然是选择社区版,而且官方提到了社区版和企业版的安装是有所不同的,在此只记录社区版的安装。
添加源
1 | $ sudo apt-get install \ |
其中 sudo apt-key fingerprint 0EBFCD88
是用来验证源的 key 信息是否匹配,正确的信息应该为 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
。
这边使用的是 stable
版本,若要使用更新更快的 edge
版本,只需在最后一行的 stable
后面添加 edge
即可。对于这两个版本,官方解释如下。
1 | Docker CE gives you the option to run stable or edge builds. |
安装 Docker
1 | $ sudo apt-get update |
这样默认安装的总是最新版本的 Docker ,如果你想安装特定版本的 Docker ,可以使用 sudo apt-get install docker-ce=<VERSION>
,使用 apt-cache madison docker-ce
来显示可以安装的 Docker 版本。
可以通过运行 hello-world
镜像来确认已将 Docker CE 正确安装。
1 | $ sudo docker run hello-world |
更新 Docker
首先运行 sudo apt-get update
,然后根据安装指南选择想要安装的新版本。
Linux 下的可选安装步骤
文档链接:https://docs.docker.com/engine/installation/linux/linux-postinstall/
此处只列出个人所使用的可选安装。
使用非 root 用户管理 Docker
通过文档我们得知 docker
的守护进程绑定的是 Unix socket,默认情况下该 Unix socket 是属于 root 用户,其他用户只能通过 sudo
进行访问,而 docker
的守护进程一直是由 root 用户运行的。所以如果想不使用 sudo
来使用 Docker,可以把用户添加到 docker
用户组。
1 | $ sudo groupadd docker # 此处已经存在docker组可不执行操作 |
注销重新登入系统来使用户组更新。
通过不加 sudo
命令的 docker
命令来验证。
1 | $ docker run hello-world |
使 Docker 开机自启
对于大多数的发行版本(RHEL, CentOS, Fedora, Ubuntu 16.04 and higher)使用 systemd
来管理开机自启动的服务,Ubuntu 14.10 及以下版本使用 upstart
。
systemd
1 | $ sudo systemctl enable docker # 开启自启动 |
upstart
Docker 自动使用 upstart
配置自启动,通过以下命令来禁用。
1 | $ echo manual | sudo tee /etc/init/docker.override |
chkconfig
1 | $ sudo chkconfig docker on |
设置 HTTP 代理
因为 Docker 的服务器在国外,所以直连的速度很慢,就需要用国内的镜像或者使用 HTTP 代理,这里选择的是使用 HTTP 代理。该文档不在上面的可选安装步骤里,在后面的 Admin Guide 里面,链接:https://docs.docker.com/engine/admin/systemd/#http-proxy。
1 | $ mkdir -p /etc/systemd/system/docker.service.d |
添加下列内容,按实际情况修改。
1 | [Service] |
或者使用以下内容设置不通过代理的地址。
1 | Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com" |
然后继续操作完成配置。
1 | $ sudo systemctl daemon-reload |