Docker学习

记录笔者Docker安装过程,防止以后需要的时候找不到资源

参考文章:[Windows下安装Docker详细过程及问题解决_windows安装docker-CSDN博客](https://blog.csdn.net/m0_68988603/article/details/123884239?ops_request_misc=%7B%22request%5Fid%22%3A%22168932580016800184149482%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=168932580016800184149482&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123884239-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=Docker windows&spm=1018.2226.3001.4187)

Docker配置学习 | 雲流のLowest World (c1oudfl0w0.github.io)

一、安装wsl2

首先下载wsl2需要的linux内核:[https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel](https://blog.csdn.net/m0_68988603/article/details/123884239?ops_request_misc=%7B%22request%5Fid%22%3A%22168932580016800184149482%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=168932580016800184149482&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-123884239-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=Docker windows&spm=1018.2226.3001.4187)

打开

开启Hyper-V虚拟化平台以及基于Linux的Windows子系统

如果你这里看不到Hyper-V

新建一个bat文件,内容如下,然后用管理员的身份运行

1
2
3
4
5
6
7
8
9
pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

然后打开powershell

输入wsl --set-default-version 2

有这样的信息即可(这张图片来源于网上)

二、安装Docker Desktop for Windows

官网:Get Started | Docker

下载后安装即可,默认安装在C盘。后面可以更换位置

安装完成后,打开Docker的设置,勾选基于WSL2的引擎

打开Powershell输入wsl -l -v,发现有以下信息即可

三、更换镜像源

设置中找到Docker Engine

修改为

1
2
3
4
5
6
7
8
9
10
{
"debug": true,
"experimental": false,
"insecure-registries": [],
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}

四、更改数据存储位置

1、停止Docker 服务

2、备份数据到另一个文件夹

powershell运行

1
wsl --export docker-desktop-data "E:\Docker\docker-desktop-data.tar"

直到

3、删除原有数据

1
wsl --unregister docker-desktop-data

4、更改数据存储盘并恢复数据

1
wsl --import docker-desktop-data "E:\Docker" "E:\Docker\docker-desktop-data.tar" --version 2

五、基于GZCTF框架出密码交互题

巨魔师傅打包好的docker出题模板

选择需要的模板,这里我选择的是crypto-python_3.10-no_socket

将文件提取到文件夹下,我这里是test

进入src目录,里面的main.py就是要运行的文件,可以改为自己的

来到test/docker,打开终端,输入docker-compose up -d

或者,先输入docker build -t test:v1(镜像名:Tag)

然后docker run -it -p 9999:9999 test:v1(镜像名:Tag)

然后就可以在docker Desktop看到容器已经启动了,并且端口是9999

然后nc 你的ip : 9999

目前只实现了本机nc

如何让其他人也能nc,也就是出内网

下载一个花生壳app

点击右上方加号

然后选择TCP这个场景,免费的,其他的应该也用不上

在外网域名选一个,内网主机通过终端ipconfig获取,端口和启动的docker端口一致

然后就可以啦。

局限就是你得在主机上保持docker运行状态。

-------------已经到底啦!-------------