什么是docker
- Docker 是一个开源的应用容器引擎,让开发者可以方便地打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
用docker可以做什么
- 对于安全工作者来说,搭建测试环境和靶场是不可避免的,而docker能够方便快速地帮助我们搭建一个环境
我总结的常用命令
搜索需要的镜像
docker search 镜像名
拉取需要的镜像
docker pull 镜像名
查看是否拉取到镜像
docker images
如果想从本地导入镜像该怎么做
docker load < 镜像路所在路径
下错镜像,你该怎么删除它
docker rmi 镜像ID
运行对应镜像在容器中,并立即进入容器内部
docker run -it 镜像名 /bin/bash
如何从容器内部退出
exit
如果我一开始只想在后台运行容器怎么办
docker run -d 镜像名
查看容器运行状态
docker ps -a
想调试一个已经在后台运行的容器,该怎么进去
docker exec -it 容器ID bash
想进入容器内部,但是查看容器ID太麻烦了怎么办
可以在运行容器的时候就给容器设置个性化名字,后面所有的容器操作都可以用自定义的容器名称去代替容器ID
docker run -d --name minzi 镜像名
调试容器需要导入文件怎么办
docker cp 本地路径 容器ID:镜像路径
需要从容器中导出文件该怎么办
docker cp 容器ID:镜像路径 本地路径
调试完容器想重启环境
docker restart 容器ID或者容器名
测试结束,想停止这个容器
docker stop 容器ID或者容器名
后面测试需要又需要用到环境
docker start 容器ID或者容器名
如果运行容器出现端口冲突了怎么办
可以指定端口启动啊,比如指定用本地的5566端口去映射容器的3306端口,否则默认状态下是用相同端口去做映射的,所以只要本机3306端口被占用,不改端口是启动不了的
docker run -d -p 5566:3306 镜像名
如果我想导出这个配置好的容器到别人的电脑上怎么办
docker commit 容器id 镜像名:标签名 先将容器保存为为镜像
docker save -o httpd.tar 镜像名:标签名 导出这个镜像
然后和导入本地镜像一样
docker load < httpd.tar
在别人电脑上用完容器后,你是不是应该删除它
docker rm 容器ID或者容器名 可批量删除