靶场镜像
# dvwa
docker run -d -p 43301:3306 -p 48881:80 --restart=always --name=dvwa sagikazarmark/dvwa
# pikachu
docker run -d -p 43302:3306 -p 48882:80 --restart=always --name=pikachu area39/pikachu
# sqli-labs
docker run -d -p 43303:3306 -p 48883:80 --restart=always --name=sqli-labs acgpiano/sqli-labs
docker run -d -p 43303:3306 -p 48883:80 --restart=always --name=sqli-labs registry.cn-hangzhou.aliyuncs.com/lanhuli/bachang:sqli-labs
# xss-labs
docker run -d -p 43304:3306 -p 48884:80 --restart=always --name=xss-labs vulfocus/xss-labs
# ssrf-labs
docker run -d -p 43305:3306 -p 48885:80 --restart=always --name=ssrf-labs anhkhoa14592/ssrf-labs
# webgoat 安装
docker run -d -p 48887:8080 -p 49091:9090 -e TZ=Asia/Shanghai --restart=always --name=webgoat webgoat/webgoat
# bluelotus_xss 安装
docker run -d -p 48888:80 --restart=always --name=bluelotus_xss tanyiqu/bluelotus_xss_receiver
对于某些课程,您需要在同一时区运行容器。为此,您可以设置 TZ 环境变量。
https://hub.docker.com/r/webgoat/webgoat
pdf 在线处理工具
docker pull registry.cn-hangzhou.aliyuncs.com/lanhuli/s-pdf:0.26.1
docker run -d \
-p 18080:8080 \
--restart=always \
-e DOCKER_ENABLE_SECURITY=false \
--name stirling-pdf \
registry.cn-hangzhou.aliyuncs.com/lanhuli/s-pdf:0.26.1
# 看需求进行目录映射
# -v /location/of/trainingData:/usr/share/tesseract-ocr/5/tessdata \
# -v /location/of/extraConfigs:/configs \
# -v /location/of/logs:/logs \
webdav 服务镜像
源镜像仓库: https://hub.docker.com/r/bytemark/webdav
docker run -d --name=webdav --restart always -v /srv/share/mybooks:/var/lib/dav \
-e AUTH_TYPE=Basic -e USERNAME=123 -e PASSWORD=123 \
-p 18888:80 \
registry.cn-hangzhou.aliyuncs.com/lanhuli/webdav:latest
注意:阅读小说 app 使用时,AUTH_TYPE=Basic 必须使用 Basic,使用 Digest 会导致 401 报错。
容器启动后在宿主机的 mybooks 文件夹下,默认创建 data 目录,这是工作的目录,存放我们的文件。
步骤 1:
按下 “windows 徽标键” + “R”,打开运行窗口,输入 regedit,点击确定后,打开注册表编辑器窗口。
步骤 2:
将路径定位到以下路径:计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters。双击右侧界面中的 BasicAuthLevel 条目,将数值数据修改为“2”,点击确定后关闭注册表编辑器。
步骤 3:
按下 “**windows 徽标键**” + “**R**”,打开运行窗口,输入`services.msc`,点击确定后,打开“服务”界面。找到 “**WebClient**”
服务,右键点击打开选项菜单,选择重新启动,稍等几秒,待完成后,关闭“服务”界面。
完成上述三个步骤后,WebClient 服务已经允许使用 http 协议进行挂载。
syncthing 同步
docker run -d -p 8384:8384 -p 220 00:22000 \
-v /srv/mydisk/share/komga:/var/syncthing \
--name=syncthing \
--restart=always \
registry.cn-hangzhou.aliyuncs.com/lanhuli/syncthing:1.27
-v /srv/mydisk/share/komga:/var/syncthing:
komga
docker run -d \
--name komga \
-v /srv/share/komga/data:/data \
-v /srv/share/komga/config:/config \
-p 25600:25600 \
-e TZ=Asia/Shanghai \
--restart=always \
registry.cn-hangzhou.aliyuncs.com/lanhuli/komga:1.11.1
dvwa 镜像
arm64 版本
镜像来源:petechua/docker-vulnerable-dvwa: 1.0
docker run -d -p 48881:80 --restart=always --name=dvwa-arm64 registry.cn-hangzhou.aliyuncs.com/lanhuli/bachang:dvwa-arm64
数据库登录:root 密码为空
- 用户:app
- 密码:vulnerables
- 注意:无法远程登录
x86 版本
镜像来源:sagikazarmark/dvwa:latest
docker run -d -p 43301:3306 -p 48881:80 --restart=always --name=dvwa registry.cn-hangzhou.aliyuncs.com/lanhuli/bachang:dvwa
MySQL 凭据配置为 DVWA 默认值:
- 用户:root
- 密码: p@ssw0rd
- 数据库: dvwa
sqli-labs
镜像来源:acgpiano/sqli-labs
docker run -d -p 43303:3306 -p 48883:80 --restart=always --name=sqli-labs registry.cn-hangzhou.aliyuncs.com/lanhuli/bachang:sqli-labs
oracle 数据库镜像
oracle-11g
源镜像仓库: https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g
安装(Ubuntu 18.04)
docker pull registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:11g
docker run -d -p 11521:1521 -p 10022:22 -p 18080:8080 -e ORACLE_ALLOW_REMOTE=true --name=oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:11g
如果要,请运行此命令:
-e ORACLE_ALLOW_REMOTE=true # 远程连接数据库
-e ORACLE_DISABLE_ASYNCH_IO=true # 禁用磁盘异步 IO
-e ORACLE_ENABLE_XDB=true # 使用默认密码启用 XDB 用户
对于 APEX 用户:
docker run -d -p 49161:1521 -p 8080:8080 oracleinanutshell/oracle-xe-11g
# Login http://localhost:8080/apex/apex_admin with following credential:
username: ADMIN
password: admin
修改后的密码:Xjj#123
默认情况下,密码验证为禁用(密码永不过期) 。使用以下设置连接数据库:
hostname: localhost
port: 49161
sid: xe
username: system 或者 sys
password: oracle
orcale-12c
源镜像仓库地址: https://hub.docker.com/r/zhuyijun/oracle-12c
下载镜像
docker pull registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:12c
# 创建并运行容器,简单使用
docker run -d --name oracle12c -p 11521:1521 -p 15500:5500 --restart=always \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=orclpdb1 \
-e ORACLE_PWD=Oracle#123 \
-e ORACLE_CHARACTERSET=al32utf8 \
registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:12c
如要使用更多环境变量,参数如下
docker run --name oracle12c -p 11521:1521 -p 15500:5500 \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=orclpdb1 \
-e ORACLE_PWD=Oracle#123 \
-e ORACLE_CHARACTERSET=al32utf8 \
-e ORACLE_BASE=/opt/oracle \
-e ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1 \
-e PATH=/opt/oracle/product/12.2.0.1/dbhome_1/bin:/opt/oracle/product/12.2.0.1/dbhome_1/OPatch/:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
-v /home/nicemoe/oradata:/opt/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:12c
注意使用之前修改/home/nicemoe/oradata 为自己的
/d/docker/data/oradata 意思是 D:/docker/data/oradata 文件夹
其它使用:
# 修改密码
docker exec <container name> ./setPassword.sh <your password>
docker exec d38c6077ec85 ./setPassword.sh Oracle*123456 # 例如这样修改密码
# 访问 OEM Express
# https://localhost:5500/em/ # 注意要用 https
# 用户名、密码、容器名:system/sys、123456、orclpdb1
# 以 sysdba 身份登录:sys、123456、orclpdb1
orcale-19c
源镜像仓库地址: https://hub.docker.com/r/zhuyijun/oracle-12c
docker pull registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:19c
# 创建并运行容器,简单使用
docker run -d --name oracle19c -p 21521:1521 -p 25500:5500 --restart=always \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=orclpdb1 \
-e ORACLE_PWD=Oracle#123 \
-e ORACLE_CHARACTERSET=al32utf8 \
registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:19c
如要使用更多环境变量,参数如下
docker run --name myoracle -p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=orclpdb1 \
-e ORACLE_PWD=123456 \
-e ORACLE_CHARACTERSET=zhs16gbk \
-e ORACLE_BASE=/opt/oracle \
-e ORACLE_HOME=/opt/oracle/product/12.2.0.1/dbhome_1 \
-e PATH=/opt/oracle/product/12.2.0.1/dbhome_1/bin:/opt/oracle/product/12.2.0.1/dbhome_1/OPatch/:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
-v /home/nicemoe/oradata:/opt/oracle/oradata \
registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle:19c
其它使用:
# 修改密码
docker exec <container name> ./setPassword.sh <your password>
docker exec d38c6077ec85 ./setPassword.sh Oracle*123456 # 例如这样修改密码
# 访问 OEM Express
# https://localhost:5500/em/ # 注意要用 https
# 用户名、密码、容器名:system/sys、123456、orclpdb1
# 以 sysdba 身份登录:sys、123456、orclpdb1
oracle-19c-arm64
源镜像仓库: https://hub.docker.com/r/beatrizzallo/oracle-19e-m1
- 使用提供的映像生成容器的命令:
docker run -d -p 18080:8080 -p 11521:1521 --name "oracle19" -e ORACLE_SID="oracle_sid" registry.cn-hangzhou.aliyuncs.com/lanhuli/oracle: 19c-arm64
- 创建并初始化(检查已完成配置的日志)后,您可以为用户生成一个新通道,如下所示:
docker exec "image-name" /opt/oracle/setPassword.sh "new-pass"
# 对密码有复杂度有要求 Oracle#123
nginx-php5.6 镜像
源镜像仓库: https://hub.docker.com/r/andreisusanu/nginx-php5.6
使用
docker run --name nginx-php5.6 -p 8000:80 -v /path/to/local/ www:/var/www/html andreisusanu/nginx-php5.6
mind-map
轻量级的思维导图: https://github.com/wanglin2/mind-map
docker 部署
docker pull shuiche/mind-map:latest
docker run -d -p 8081:8080 --name=mind-map --restart=always shuiche/mind-map:latest
注意:
- 网页需要 https 才能进行访问,否则无法进行新建等操作。可以用在线 ssl 网站生成自签名证书,然后 nginx 反向代理
- nginx 配置文件复制粘贴时空格报错,win 平台问题
server {
listen 8082 ssl;
server_name 192.168.31.211;
# ssl 证书的 pem 文件路径
ssl_certificate /etc/nginx/zhengshu/cert.pem;
# ssl 证书的 key 文件路径
ssl_certificate_key /etc/nginx/zhengshu/private.key;
location / {
proxy_pass http://192.168.31.211:8081 ;
}
}
部署到静态文件服务器
项目本身不依赖后端,所以完全可以部署到一个静态文件服务器上,可以依次执行如下命令:
git clone https://github.com/wanglin2/mind-map.git
cd mind-map
cd simple-mind-map
npm i
npm link
cd ..
cd web
npm i
npm link simple-mind-map
然后你可以选择启动本地服务:
npm run serve
也可以直接打包生成构建产物:
npm run build
jellyfin
docker run -d -p 8096:8096 --name jellyfin --restart=always -v /srv/share/jellyfin/config:/config -v /srv/share/jellyfin/cache:/cache -v /srv/share/jellyfin/media:/media e16e6f156cd4
-d: 以守护进程模式运行容器,即在后台运行。
--name: 为容器指定一个名称,这里是jellyfin。
--user: 指定运行容器的用户ID和组ID,这里使用1000:1000作为示例。这是为了安全性和文件权限管理。
--net=host: 使用宿主机的网络,这样可以使Jellyfin容易地通过宿主机的网络端口访问。
-v: 绑定宿主机的目录到容器内的目录。这里绑定了配置目录(/path/to/config)、缓存目录(/path/to/cache),以及媒体文件目录(/path/to/media)。
/path/to/config: 存储Jellyfin的配置文件和数据。
/path/to/cache: 存储Jellyfin的临时缓存文件。
/path/to/media: 媒体库目录,Jellyfin将从这里读取媒体文件。
docker run -d -p 18096:8096 --name jellyfin1 --restart=always -v jellyfin_data:/config -v jellyfin_data:/cache -v jellyfin_data:/media e16e6f156cd4
解析 markdown 的小镜像
有时候急需翻阅笔记,查找内容,但是笔记保存在我本地的电脑上,所以想将本地保存的 markdown 笔记,同步到放到服务器上,通过浏览器网页的方式,可以直接看到 markdown 解析后的页面。能简单查看笔记内容,应一下急就行。
考虑过 hugo,hexo 等,有点麻烦,虽然我现在有用 Hugo 搭建了一个博客,但感觉过于正式,我就想简单看一下就行😂。在网上查找了一下,思否上看到这个如何在浏览器直接浏览markdown文件 回答,下面帖子里面有个兄弟自己写一个专用的服务器 Markdown Server,本地运行测试了一下,刚好就是我想要的,感谢这个兄弟♥️
我的笔记都是本地保存,图片使用相对路径在 md 文件中进行引用的,这个程序不会改变目录结构,从而显示图片,所以可以直接将整个笔记复制到程序的运行目录下。
本地运行测试页面:
网站首页

二级目录

打开笔记页面:有参数可以修改这个页面的主题,但是就这个默认的好看(github-markdown),其他的贼难看(个人看法)

打包成 docker 镜像
因为是用 npm 安装的,但是我又不想安装 node.js 和 npm,索性直接用 docker 打包成一个镜像,方便使用。
Dockerfile 文件
# 看仓库时间,这个作者最后 Published 是在2017-2018年,用的老版本镜像。
FROM node:11.1.0-alpine
# 创建工作目录
WORKDIR /markdown
# 安装 markdown-http-server
RUN npm install -g markdown-http-server
# 声明端口,仅仅只是一个声明,描述需要哪些端口
EXPOSE 80
#运行启动脚本
COPY start.sh /root/start.sh
RUN chmod +x /root/start.sh
CMD ["sh","-c","/root/start.sh"]
start.sh 文件内容
#!/bin/sh
markdown-server -p 80 /markdown/
/bin/sh
镜像使用
docker run -d -p 8080:80 --restart=always --name=markdown-server -v /your-path:/markdown registry.cn-hangzhou.aliyuncs.com/lanhuli/markdown-server:latest
注意:镜像部署的网站没有任何的身份验证功能,所以任何人都可以访问,部署在公网服务器上请注意隐私泄露问题。你可以使用 Nginx 的反向代理和 Basic_Auth 来配置简单的身份验证
mssql 数据库
docker pull mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=你的密码" -p 1433:1433 --name=sql1 mcr.microsoft.com/mssql/server:2017-latest
注意:密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,会停止工作。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。
进入容器内部
cd /opt/mssql-tools/bin
.sqlcmd -S localhost -U sa -P "你的密码"
portainer
管理 docker 的容器和镜像
# 汉化版
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce