Ubuntu22.04-Docker安装及其SQLi-Labs靶场搭建
·
1. 安装Docker
更新源与系统软件
更新软件列表,查看可安装升级的软件
sudo apt update
升级本机可升级的软件
#-y:自动确认
sudo apt upgrade -y
安装依赖
#ca-certificates:HTTPS证书验证用,安全下载Docker官方GPG key必须用
#curl:用于从 URL 下载安装文件
#gnupg:用于 GPG key 解码/转换
#lsb-release:用于获取系统代号(如 jammy、focal),添加 docker 源会用到
sudo apt install -y ca-certificates curl gnupg lsb-release
2. 添加Docker官方仓库
导入Docker官方GPG key
#curl -fsSL https://xxx/gpg
#-f:遇到错误时退出
#-s:静默模式,不显示进度条
#-S:如出现错误,显示错误信息
#-L:允许重定向
#|:管道,表示把curl下载的数据交给gpg
#gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#gpg:GNU隐私保护工具,用来处理签名和密钥
#--dearmor:把ASCII格式的key转成apt能识别的二进制格式
#-o:输出到指定路径供apt使用
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加Docker官方apt源
#echo "deb [...]":输出一段Docker的apt仓库配置的文本
#deb [选项] 仓库地址 系统代号 软件通道
#deb:表示 Debian/Ubuntu 二进制包仓库
#arch=$(dpkg --print-architecture):自动取系统架构
#signed-by=xxx.gpg:指定使用刚才保存的gpg key验证软件可信度
#https://download.docker.com/linux/ubuntu:Docker 官方仓库地址
#$(lsb_release -cs):填入发行版本名称
#stable:使用稳定版 Docker
#| sudo tee xxx.list
#tee:把文本写入到文件
#xxx.list:Docker软件仓库的配置文件
#> /dev/null:丢弃 tee 的输出信息,只留下结果,界面更干净
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
再次更新软件索引
因为添加了一个新的仓库,apt 需要重新扫描一次软件源。
sudo apt update
安装Docker Engine
#docker-ce:Docker Community Edition(Docker 主服务)
#docker-ce-cli:Docker 命令行工具(docker 命令)
#containerd.io:底层容器运行时,Docker 必须依赖
#docker-buildx-plugin:新版构建工具 buildx
#docker-compose-plugin:新版 compose(直接使用 docker compose)
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启动Docker服务
#systemctl:控制系统服务(systemd)
#enable:设置为开机自动启动
#--now:立即启动服务(不用重启)
sudo systemctl enable --now docker
#执行完成会有如下提示信息
#Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-#sysv-install.
#Executing: /lib/systemd/systemd-sysv-install enable docker
查看docker是否正常运行
sudo systemctl status docker
#docker启动成功提示信息:
#docker.service - Docker Application Container Engine
# Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset>
# Active: active (running) since Thu 2025-11-20 16:51:23 CST; 2min 29s ago
#TriggeredBy: ● docker.socket
# Docs: https://docs.docker.com
# Main PID: 3429 (dockerd)
# Tasks: 9
# Memory: 22.7M
# CPU: 459ms
# CGroup: /system.slice/docker.service
# └─3429 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>
3. 安装并运行SQLi-Labs
拉取镜像
#docker pull:从Docker Hub拉取镜像
#acgpiano/sqli-labs:镜像仓库名
#latest:标签(可不写,默认 latest)
docker pull acgpiano/sqli-labs:latest
运行SQLi-Labs容器
#-d:后台运行
#--name sqli-labs:给容器取名字
#-p 8080:80:端口映射:主机 8080 → 容器 80(访问用 http://localhost:8080)
#--restart unless-stopped:自动重启策略,除非手动停止
#acgpiano/sqli-labs:latest:镜像名
docker run -d --name sqli-labs -p 8080:80 --restart unless-stopped acgpiano/sqli-labs:latest
#启动成功后生成:
#30bfff7c6e7e928b5319017901b0d0e5832741140bcacd4dd81c2cd154790313
初始化SQLi-Labs数据库
在浏览器打开:
http://localhost:8080/sql-connections/setup-db.php
显示如下信息,则初始化成功

进入SQLi-Labs靶场

在火狐浏览器下载HackBar插件


查看正在运行的容器【可选】
docker ps
#已经启动的容器会显示在下方:
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#30bfff7c6e7e acgpiano/sqli-labs:latest "/run.sh" About a minute ago Up About a #minute 3306/tcp, 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp sqli-labs
进入容器内部【可选】
#exec:在容器内执行命令
#-it:交互式分配终端
#/bin/bash:进入bash shell
docker exec -it sqli-labs /bin/bash
停止容器【可选】
docker stop sqli-labs
删除容器【可选】
docker rm sqli-labs
删除镜像【可选】
docker rmi acgpiano/sqli-labs:latest
更多推荐
所有评论(0)