dokcer 常用命令
如果你想将一个容器转换为镜像,可以:
docker commit <container -id> name(对该镜像的命名)
docker run 中的 –rm :使用该命令,docker能在该container结束时自动清理其所产生的数据,适用于需要短期运行一个前台container;
创建并连接容器、端口映射、绑定随机id
docker run -i -t --name kali -p 8081:80 -p 8080:8080 -p 4444:4444 -p 5555:5555 -p 2222:22 kali1:tools /bin/bash
–name:是给容器指定的名字 kali1:tools:是镜像文件 “-d”参数是将容器运行在后台 “-i -t”参数是同容器进行数据交互;如果使用shell脚本进行交互操作,则必须使用-i -t,如果是通过管道同容器进行交互,就不需要使用-t,
例如:
echo test | docker run -i busybox cat
这样创建完成就可以直接使用kali这个容器名进行访问kali系统了
docker start kali //kali是-name指定的容器名称
docker attach kali //attach 为连接指定的容器
省的使用id连访问了,而且不会产生随机id的容器了
docker ps ls 或 docker container ls // 查看正在运行的容器 加上 “-a” 查看所有已经创建的容器
docker ps -a 查看容器 ID
docker commit 1672f506eac7 msf //将 kali 这个容器保存为一个镜像。
使用公网ip访问msf:
docker run -t -p 8888:8888 -i msf /bin/bash
将 vps 的 8888 端口与容器的 8888 端口映射上,方便反弹 shell。端口自己随意设置。
这样便可以在公网反弹shell或者监听的时候使用8888端口;
昨天研究了下,发现docker在启动速度和占用资源上面,比传统的硬件虚拟技术都要好。在docker上,kali官方给出了1.X版本,基本上是个空系统(没有metasploit),你需要用什么工具,就自己apt-get(连vim都没有),可以自己定制自己的kali,但是在docker修改后的container 需要commit一下进行保存,如果不保存直接退出,是不会修改container的,好处就在一次配置好,以后直接用。当然,docker上还有其他人做好的镜像,有的是包含了metasploit,有的包含了w3af。
整理了下常用docker 常用命令,供大家参考,如果只是用kali的不是做系统架构和运维的话,基本上够用了。
命令 | 描述 |
---|---|
docker run -t -i | 用镜像创建一个容器 |
docker pull image | 从网上拉取镜像 |
docker images | 查看可用镜像 |
docker ps -a | 查看所有的容器 |
docker stop | 停止该容器 |
docker start | 开始该容器 |
docker attach | 与该容器交互 |
docker commit | 创建新的镜像 |
docker rm | 删除容器 |
docker rmi | 删除镜像 |
docker cp :/file/path/within/container /host/path/target | 从Docker容器内拷贝文件到主机上 |
docker import kali.tar kali | 导入镜像 |
表中也可以是创建容器时指定的name;
简单命令示意图: