Docker常用指令(创建sqli-labs靶场)

以创建sqli-labs靶场为例子记录一下docker的常用指令

1. 镜像

1.2 查找镜像

docker search sqli-labs

1.3 获取镜像

docker pull sqli-labs

1.4 登录/退出第三方仓库

docker login/logout [ 仓库地址 ]

1.5 推送镜像到仓库

docker push sqli-labs

1.6 查看本地所有镜像

docker images

1.7 删除本地镜像

docker rmi 镜像名/镜像ID

docker rmi acgpiano/sqli-labs

1.8 查看镜像详情

docker inspect 镜像名/镜像ID

1.9 打包本地镜像,使用压缩包完成迁移

docker save [ 镜像名 ] > [ 文件路径 ]

1.10 导入镜像压缩包

docker load < [ 文件路径 ]

2 容器

2.1 创建容器

docker create -p 3000:80 --name sqli-labs acgpiano/sqli-labs

  • docker create命令用于创建一个新的镜像。
  • -p参数告诉 Docker 如何在容器中映射端口 80到主机操作系统。我指定容器内的端口80映射到主机操作系统中的端口3000。这与Docker中的EXPOSE命令相对应,表示这个容器将响应于请求发送至主机操作系统中的端口3000。
  • --name 参数为容器指定了一个名字,这样一来,一旦容器的已经创建了。本例中的名称是 sqli-labs。
  • 最后一个参数告诉Docker要使用哪个镜像作为新容器的模板。这个命令指定了acgpiano/sqli-labs镜像,这是docker build中使用的名称。

docker run [ 参数 ] [ 镜像名 or 镜像 id ] [ 命令 ]

run指令的相关参数如下:

选项 说明
-d 后台运行容器, 并返回容器ID;不指定时, 启动后开始打印日志, Ctrl + C 退出命令同时会关闭容器
-i 以交互模式运行容器, 通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端, 通常与 -i 同时使用
--name "sqli-labs" 为容器指定一个别名, 不指定时随机生成
-h docker-anyesu 设置容器的主机名, 默认随机生成
--dns 8.8.8.8 指定容器使用的 DNS 服务器, 默认和宿主机一致
-e docker_host=172.17.0.1 设置环境变量
--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定 CPU 运行
-m 100M 设置容器使用内存最大值
--net bridge 指定容器的网络连接类型, 支持 bridge / host / none / container 四种类型
--ip 172.18.0.13 为容器分配固定 ip ( 需要使用自定义网络 )
--expose 8081 --expose 8082 开放一个端口或一组端口, 会覆盖镜像设置中开放的端口
-p [宿主机端口]:[容器内端口] 宿主机到容器的端口映射, 可指定宿主机的要监听的 ip, 默认为 0.0.0.0
-P 注意是大写的, 宿主机随机指定一组可用的端口映射容器 expose 的所有端口
-v [宿主机目录路径]:[容器内目录路径] 挂载宿主机的指定目录 ( 或文件 ) 到容器内的指定目录 ( 或文件 )
--add-host [主机名]:[ip] 为容器 hosts 文件追加 host , 默认会在 hosts 文件最后追加内容:[主机名]:[容器ip]
--volumes-from [其他容器名] 将其他容器的数据卷添加到此容器
--link [其他容器名]:[在该容器中的别名] 添加链接到另一个容器, 在本容器 hosts 文件中加入关联容器的记录, 效果类似于 --add-host

2.2 查看运行中的容器

docker ps     

docker ps -a       #   -a 表示查看所有容器 

2.3 开启/停止/重启容器

# 关闭容器(发送SIGTERM信号,做一些‘退出前工作‘,再发送SIGKILL信号)

docker stop sqli-labs

 

# 强制关闭容器(默认发送SIGKILL信号, 加-s参数可以发送其他信号)

docker kill sqli-labs

 

# 启动容器

docker start sqli-labs

 

# 重启容器

docker restart sqli-labs

2.4 删除容器

docker rm [容器名 / 容器id]

2.5 查看容器详情

docker inspect sqli-labs

2.6 查看容器中正在运行的进程

docker top sqli-labs

 

Docker常用指令(创建sqli-labs靶场)

上一篇:python连接mysql数据库报错pymysql连接数据库报错TypeError: __init__() takes 1 positional argument but 5 positional arguments


下一篇:Linux之Redhat6.5安装phpMyAdmin连接到后台数据库