玩转×××那些工具,缺少了虚拟机怎么行,除了用虚拟机虚拟整个系统,Docker也不能缺少,读者只需要知道,Docker只虚拟Linux系统中的某个程序就可以了。本节就来介绍Linux下安装设置Docker。

很幸运,Docker已经加入到了Debian的官方源中了。可以使用apt-get安装Docker。首先,使用163的镜像替代默认的官方镜像(基于Docker使用加速器的同样理由),163镜像源的配置文件163.list如下:

deb http://mirrors.163.com/debian/ jessie mainnon-free contrib deb http://mirrors.163.com/debian/ jessie-updatesmain non-free contrib deb http://mirrors.163.com/debian/ jessie-backportsmain non-free contrib deb-src http://mirrors.163.com/debian/ jessie mainnon-free contrib deb-src http://mirrors.163.com/debian/jessie-updates main non-free contrib deb-src http://mirrors.163.com/debian/jessie-backports main non-free contrib deb http://mirrors.163.com/debian-security/jessie/updates main non-free contrib deb-src http://mirrors.163.com/debian-security/jessie/updates main non-free contrib 1、首先将163.list拷贝到/etc/apt/sources.list.d/目录下,然后将系统默认的更新源注释掉。执行命令:

su
cp 163.list /etc/apt/sources.list.d/
sed -i ‘s/^/#/g’ /etc/apt/sources.list

2、测试一下执行结果,如图1-56所示。 l 图1-56 修改debian软件源

3、其中jessie-backports main就是Docker的位置。修改软件源后,更新软件园,安装Docker,执行命令:

apt-get update
apt-get install docker-io

执行结果如图1-57所示。 l 图1-57 安装Docker For Linux

4、Docker For Linux安装完毕,下面开始给Docker配置加速器,还是使用刚才在Windows下获取的Daocloud加速器。执行命令: echo "DOCKER_OPTS=\"$DOCKER_OPTS --registry-mirror=http://xxx.m.daocloud.io\"">> /etc/default/docker Docker For Linux配置完毕,可以开始使用了。

Docker使用

在终端(Windows的终端是cmd.exe和ConEmu,Linux的终端是Terminal)中执行docker –help,可以查看Docker的所有命令,执行结果如图1-58所示。 l 图1-58 docker help

这里只说明最常用的几个命令,如下所示。

  1. docker search 从镜像源搜索软件
  2. docker pull 从镜像源拉取软件
  3. docker run 运行镜像为容器
  4. docker ps 显示容器列表
  5. docker images 显示镜像列表
  6. docker start 启动容器
  7. docker stop 停止运行中的容器
  8. docker rm 删除容器
  9. docker rmi 删除镜像 基本上熟悉这几个命令就可以使用Docker了。下面来以Kali来测试一下。虽然在选择Linux系统时选择了Debian Linux,但Kali在某些方面的确要比Debian方便很多。使用VMwareWorkstation创建Kali虚拟机是一个办法,使用Docker创建Kali容器同样也挺好用。首先搜索可用的Kali镜像。执行命令: docker search kali 执行结果如图1-59所示。 l 图1-59 搜索docker 镜像

可用的镜像很多,选择自带metasploit的镜像linuxkonsult/kali-metasploit。将docker镜像pull到本地,执行命令: docker pull linuxkonsult/kali-metasploit 执行结果如图1-60所示。 l 图1-60 docker pull

这个镜像比较大,下载可能需要点时间。如果配置好了加速器,速度还勉强可以接受。运行命令docker images、docker ps和docker ps -a分别查看当前镜像、当前运行容器和当前所有容器,如图1-61所示。 l 图1-61 镜像和容器列表

当前只有镜像没有容器。可以用dockerrun 命令,暂时的使用镜像里的程序,如图1-62所示。 l 图1-62 docker run

这里的-it选项意思是打开交互式环境接口,--rm选项意思是退出后就删除这个容器。这个命令创建了一个临时容器(没指定容器名),并运行了容器中的python程序。以同样的方法,也可以打开kali容器中的msfconsole程序。

用docker run 以后台的方式运行kali linux。这种方式就有点类似与VMware虚拟机了,只是没有图形界面,如图1-63所示。 l 图1-63 后台运行容器 这里的-d参数指定后台运行,--name指定了容器的名字,-p参数相当于端口映射,意思是把容器上的22端口映射到主机的22端口上(虽然容器上端口不一定打开了)。查看一下本地的22端口,如图1-64所示。 l 图1-64 docker端口映射

当容器使用完毕后,可以用dockerstop关闭容器。下次使用时则用dockerstart启动容器,如图1-65所示。 l 图1-65 打开、关闭容器

如果觉得这个容器、镜像不符合要求,可以使用docker rm和docker rmi命令删除容器和镜像。删除容器时必须要先关闭容器,删除镜像时要先删除根据镜像生成的容器,如图1-66所示。 l 图1-66 删除容器、镜像

Docker使用简单方便,占用资源比VMware要小很多。除了不能创建Windows容器外,完全可以作为VMware的替代品。如果实在不习惯Docker命令模式的,也有Docker GUI程序可供使用。


有兴趣的欢迎一起读这本书《11招玩转网络安全——用Python,更安全》