安装docker
在root权限下执行此命令
sudo apt install curl
curl -s https://get.docker.com/ | sh //安装新版本的docker
或者
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
// 注意:上述可行则下列方法不必使用,此为老版本!!!!!
sudo apt install docker.io //使用Ubuntu自带的docker包管理器安装,但是一般版本比较老
sudo apt purge --autoremove docker.io //卸载老版本的docker
docker服务可能需要手动启动:service start docker
搜索镜像
docker search sqli-lab //查找sqli-labs镜像
拉取镜像
docker pull acgpiano/sqli-labs //拉取镜像到本地
docker rmi [image] //删除镜像
docker image rm [image]
查看已经拉取的镜像
docker images //查看已有的镜像
启动环境
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
-dt 让其在后台运行
--name 给其命名
-p 本地端口:docker中的端口 是将docker的端口映射到本地端口
--rm 当其关闭后将删除开启的资源
容器进程信息
docker ps -a
//显示容器container容器的id,镜像名,命令,创建时间,状态,端口映射关系,容器名。
进入容器的shell
docker exec -it [容器id] /bin/bash
选项 | 选项简写 | 说明 |
---|---|---|
–detach | -d | 在后台运行容器,并且打印容器id。 |
–interactive | -i | 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。 |
–tty | -t | 分配一个伪tty,一般与 -i 连用。 |
退出容器的shell
Ctrl+d //退出并且停止容器
Ctrl+p+q //退出使容器在后台运行
补充:
在局域网访问虚拟机docker容器的方法
本方法使用的环境为linux,使用windows物理机可免去大部分操作。
1)拉取镜像
docker search sqli-lab
docker pull acgpiano/sqli-labs
docker images
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
2)在VMware左侧的选项卡处右键单击,打开设置
3)将网络连接修改为桥接或NAT模式
NAT模式和桥接模式的异同
- NAT模式在本物理机的子网
- 桥接模式下等效为本机同局域网的主机
- 但是两者的主机地址均可被虚拟机所在的物理机访问
4)docker ps -a确定服务所在端口
5)ifconfig确定虚拟机IP地址
6)访问
访问失败的解决方法
-
重复上述步骤,来回切换NAT和桥接
-
检查访问主机是不是在同一局域网下
-
特殊原因导致拨号上网(插网线)不能正常访问,切换为wifi即可