Kali 2018.1 中安装Docker CE
最近电脑上重新安装了Kali Linux,Kali基于Debian Testing分支进行开发,从2016年开始以滚动版形式发布新版本,版本均命名为Kali Rolling。最新发布的Kali 2018.1使用 Kernel 4.14.12和GNOME 3.26.2,经实验,可安装Debian 9 (stretch)支持的软件。
参考Docker官方在Debian上的安装教程和一些资料,下面给出在Kali 2018.1中安装Docker CE的方法。
卸载旧版本Docker
Docker 从 17.03版本之后分为社区版CE(Community Edition)和企业版EE(Enterprise Edition)。其中社区版为免费版本,包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP;企业版为付费版本,主要提供了安全性方面的增强。本文安装版本为Docker CE。
首先卸载旧版本Docker:
$ sudo apt-get remove docker docker-engine docker.io
安装Docker CE
Docker官方给出了三种方法:
- 通过设置Docker的仓库(repositories)安装。这种方法使用的最多,且安装后便于升级,推荐使用该方法。
- 通过下载DEB包手动安装。这种方法通常在离线环境下使用,通过该方法安装的软件在升级时也需要手动下载安装。
- 使用脚本安装。这种方法通常用在测试和开发环境中。
其中第二种方法可在官方库 Debian stretch版本的pool/stable/路径下,选择对应系统的安装包,然后使用dpkg -i命令进行安装。
第三种方法中,脚本里通过查看/etc/os-release等文件内容,或使用lsb_release等命令获取发行版本进行安装,而Kali中获取的版本均为Kali Rolling,为Docker不支持的版本,需要对相关配置文件进行修改。
本文重点介绍使用第一种方式安装的方法,同样需要修改配置文件,理论上通过修改后,也可使用第三种方法提供的脚本进行安装。
修改配置文件
切换到root用户:
- 修改
/etc/debian_version内容为
9.0
- 修改
/etc/lsb-release内容为
DISTRIB_ID=Debian
DISTRIB_RELEASE=9
DISTRIB_CODENAME=stretch
DISTRIB_DESCRIPTION="Debian GNU/Linux 9 (stretch)"
- 修改
/etc/os-release内容为
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
ID=debian
VERSION="9 (stretch)"
VERSION_ID="9"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
设置Repository
- 更新apt索引
$ sudo apt-get update
- 添加Docker官方GPG key
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- 添加stable版的repository(也可添加其他版本)
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
安装Docker CE
- 更新apt索引
$ sudo apt-get update
- 安装最新版本Docker CE
$ sudo apt-get install docker-ce
- 在生产系统中应安装指定版本Docker CE
首先获取可用的版本:
$ apt-cache madison docker-ce
然后根据获取的版本号安装:
$ sudo apt-get install docker-ce=<版本号>
- 验证
通过运行hello-world镜像验证是否成功安装。
$ sudo docker run hello-world
运行上述命令如果出现如下错误:
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
如不是因为设置代理等造成的错误,可重新启动docker,再次尝试。
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ sudo systemctl status docker
$ sudo docker pull hello-world
- 设置Docker开机自启动
$ sudo systemctl enable docker
- 使用非root用户运行docker
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
命令执行后,需要注销当前用户,重新登录后即可使用。
- 使用阿里云容器加速器
首先注册阿里云帐号,然后在加速器页面https://cr.console.aliyun.com/#/accelerator 中获取加速器地址,并按照官方提示进行配置。CentOS和Ubuntu的配置方法如下:
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
更新Docker CE
首先运行命令更新apt索引:
$ sudo apt-get update
然后根据上文提到的方法安装新版本。