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 | pushd "%~dp0" |
然后打开powershell
输入wsl --set-default-version 2
有这样的信息即可(这张图片来源于网上)
二、安装Docker Desktop for Windows
下载后安装即可,默认安装在C盘。后面可以更换位置
安装完成后,打开Docker的设置,勾选基于WSL2的引擎
打开Powershell
输入wsl -l -v
,发现有以下信息即可
三、更换镜像源
设置中找到Docker Engine
修改为
1 | { |
四、更改数据存储位置
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框架出密码交互题
选择需要的模板,这里我选择的是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运行状态。