要想学习docker,首先得安装一个Docker是吧。那我下面就以Ubuntu16.04为例子,来安装Docker。
建议在安装docker前,把apt的源更改为国内的源,步骤可以参考Ubuntu 更换国内源
Step1 卸载掉老版本的Docker
老版本的Docker叫作docker
, docker.io
, or docker-engine
. 如果Ubuntu系统已经存在这些软件的话,那么首先是要卸载掉的。
执行下面的命令:
$ sudo apt-get remove docker docker-engine docker.io containerd runc
如果apt-get提示说这些软件一个也没安装,那么也是Ok的。
Step2 选择要安装的版本
Docker虽然是一个开源软件,但是也分为不同的版本,CE版本代表社区版本,EE版本代表商业版本。
我这里当然是选择安装CE版本,因为穷啊!
CE社区版本也分为stable、test和nightly。Stable代表稳定版,test是测试版本,nightly是最新构建出来的版本。我这儿主要是为了学习,就不折腾了,选择Stable稳定版本。
Step3 从软件库(repository)安装Docker
有两个方式安装Docker,一种是使用软件管理工具从软件库里安装,另一种是下载安装包后自己手动安装。
自己手动下载安装包安装容易出错,而且可能会引入一些依赖相关的问题,建议还是使用软件工具从软件库里安装。
在安装Docker前,先要设置一下安装和更新Docker的软件库地址。
(1) 设置软件库
-
更新库索引
$ sudo apt-get update
-
安装一些软件包,使得apt用HTTPS链接软件库
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
-
添加Docker的GPG秘钥。建议使用国内的镜像网址,注释中是官方的网址。
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - #$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
设置稳定版软件库。建议使用国内的镜像网址,注释中用的是官方的网址。
$ sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) \ stable" # $ sudo add-apt-repository \ # "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ # $(lsb_release -cs) \ # stable"
如果要安装test或nightly版本的,只需要在stable后面添加test或night单词即可。我这儿已经通过
arch=amd64
指定系统为amd64了,如果你是其他的系统,比如arm的,那么请参考官方的设置步骤:Install docker on ubuntu
(2) 安装Docke 引擎(社区版)
接下来就是要正式的安装Docker了。
-
更新本地apt软件包索引
$ sudo apt-get update
-
安装最新版的Docker(社区版)
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
-
安装指定版本Docker。
如果你想安装指定版本的Docker,可以参考官网设置,我这儿不过多赘述。
-
通过
hello-world
镜像验证是否Docker社区版已经安装成功了。执行下面的命令:
$ sudo docker run hello-world
这条命令将会下载一个测试镜像,然后在一个容器中运行它。当容器运行时会打印一些信息,然后退出。
step4 授予普通用户拥有运行Docker的权利
安装Docker的过程中会自动创建docker
用户组,但是没有任何用户加入这个用户组。所以你需要使用sudo
运行Docker命令。
Docker守护进程是绑定到Unix socket上的,而不是TCP端口。默认情况下只有root用户拥有Unix socket,其他用户只能通过sudo
访问到它。Docker守护进程总是以root用户身份运行。
如果你不想在使用docker命令时添加sudo
,那么可以创建一个叫docker
的Unix用户组,然后添加用户到这个用户组。当Docker守护进程启动时,它会创建docker
用户组成员可以访问的Unix socket。
注意,docker用户组相当于授予了用户拥有root权限,该情况下可能会影响到安全问题。
下面是授权的具体步骤:
-
创建docker用户组
$ sudo groupadd docker
-
添加你的用户到docker用户组
$ sudo usermod -aG docker $USER
-
重新登录
如果你是在虚拟机里面,那么可能需要重启虚拟机中的ubuntu。
如果你是在实体机中,那么只需要登出X windows(即命令行窗口),然后再登入就行了。
在Linux上,你也可以使用下面的命令来使得分组修改生效:
$ newgrp docker
-
验证是否授权成功
运行docker命令时不加
sudo
。$ docker run hello-world
这条命令将会下载一个测试镜像,然后在一个容器中运行它。当容器运行时会打印一些信息,然后退出。
好了,到这里基本就可以使用Docker了。
如果需要设置Docker随机启动、使用不同存储引擎、远程访问等,可以参考官网配置:Post-installation steps for Linux