这篇文章主要参考了Docker 教程 | 菜鸟教程。因为在漏洞复现或者ctf比赛的动态靶机或赛题复现中,环境是非常重要的,而docker可以很好的实现这些需求。
介绍一些核心概念:
- 容器(container):轻量化的运行实例,包含应用代码、运行时环境和依赖库。基于镜像创建,与其他容器隔离,共享主机操作系统内核,比虚拟机更高效。
- 镜像(image):只读模板,定义了容器的运行环境(如操作系统、软件配置等)。通过分层存储优化空间和构建速度。
- Dockerfile:文本文件,描述如何自动构建镜像(例如指定基础镜像、安装软件、复制文件等)。
- 仓库(Registry):存储和分发镜像的平台。
再介绍一些基础命令
- docker pull 镜像名:拉取镜像。
- docker run -d -p 宿主机端口:容器端口 使用的镜像名:docker run表示的是创建并启动一个程序;-d表示的是让容器在后台运行,命令执行不会占着终端;-p端口映射。
- docker ps:查看运行中容器
- docker build -t my-app:docker build表示的是构建Docker镜像,;t是–tag的简写,表示给构建出的镜像打标签,名字叫做my-app,没写标签时,默认是latest,完整是my-app:latest;.指定构建上下文为当前目录。
- docker exec -it <容器id> /bin/sh:表示的是进入一个正在运行的容器内部,并打开一个交互式Bash终端;docker exec表示的是在一个正在运行的容器里执行命令;-i保持标准输入打开,能输入内容,-t分配一个伪终端,让界面像正常终端一样,二者通常一起使用表示交互式终端。