在美团∙点评前端基础技术团队里,需要装Docker,平台运行测试在Docker里,于是有了下文的Docker入坑记。

下载

Docker官网地址

各种系统版本(Windows/MacOS/Linux)

装好后,就是个小鲸鱼的图标,

使用

一般使用是在终端里,所以打开终端,先运行三条命令,测试下docker安装情况:

1
2
3
4
5
6
7
8
$ docker --version
Docker version 17.03.0-ce, build 60ccb22

$ docker-compose --version
docker-compose version 1.11.2, build dfed245

$ docker-machine --version
docker-machine version 0.10.0, build 76ed2a6

开启容器

这里,运行nginx,将本机的80端口映射到docker里的80端口,容器名为webserver

1
$ docker run -d -p 80:80 --name webserver nginx

然后访问http://localhost,就看到配好的nginx

关闭容器

关闭容器,先得知道容器的id,所以这里先查看一下容器的id,使用docker ps -a或者docker images

1
2
3
4
$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96d00fcc948b nginx "nginx -g 'daemon ..." 19 minutes ago Exited (0) 5 minutes ago webserver

然后有一个id号96d00fcc948b,关闭时,只需要输入前几名就可以了,

1
$ docker stop 96d0

删除容器

输入docker镜像的name名(查看方法用docker ps -a),删除就用

1
$ docker rm -f webserver1

在Docker里安装Kali

  • 首先在终端输入(使用了国内的镜像,官方的超级慢)
1
$ docker pull hub.c.163.com/vamvam/kalilinux:latest
  • 安装完成后,查看下镜像
1
$ docker images
  • 直接运行
1
$ docker run --name Kali -t -i hub.c.163.com/vamvam/kalilinux /bin/bash
  • 更新各种软件

因为使用了国内镜像,所以 apt-get 的源也是国内的,非常之快

1
$ apt-get update && apt-get upgrade && apt-get dist-upgrade -y

安装渗透工具

1
2
$ apt-get install metasploit-framework nmap git sqlmap websploit kali-linux-wireless aircrack-ng pciutils
-y
  • 安装完后,需要保存容器状态, Ctrl-p + Ctrl-q.
1
$ docker commit -m "add hydra" 容器id REPOSITORY

为了与本机Mac实现共享数据,在 Mac 中新建了一个共享空目录 /Users/jcl/Desktop/Kali_File ,在 Kali 中新建了一个目录 /jcl ,然后使用在 docker run 命令之后添加 -v /Users/jcl/Desktop/Kali_File:/jcl 来挂载本机目录。

退出时,直接输入 exit
使用时,输入自定义的命令开启(我在 .zshrc 中的自定义)

1
2
3
$ vim ~/.zshrc 或者 ~/.bash_profile

alias="alias run-kali="docker run -it -v /Users/jcl/Desktop/Kali_File:/jcl kali /bin/bash"

$ docker build -t {hash} .
$ docker ps
$ docker kill {containerName}
$ docker run -d -P {hash}

参考: Kali Linux and Metasploit With Docker10张图带你深入理解Docker容器和镜像在docker容器中运行kali linux Docker从入门到实践