玩转×××那些工具,缺少了虚拟机怎么行,除了用虚拟机虚拟整个系统,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
这里只说明最常用的几个命令,如下所示。
- docker search 从镜像源搜索软件
- docker pull 从镜像源拉取软件
- docker run 运行镜像为容器
- docker ps 显示容器列表
- docker images 显示镜像列表
- docker start 启动容器
- docker stop 停止运行中的容器
- docker rm 删除容器
- 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,更安全》