一.Docker作用
Docker可以用来解决服务器兼容性不同的问题
1.快速部署:程序员只需将所需程序打包到镜像中,就可在任何支持Docker的环境中运行
2.环境一致性:只要有Docker环境,无论什么系统都可以运行
3.资源利用率高:例如在Linux系统上无法部署Windows系统,但有Docker的条件下可以部署
二.Docker结构
1.镜像(image):镜像相当于模具,包含运行所需要的依赖,库,配置文件等,镜像用来创建容器
2.容器(Container):镜像每次运行生成一个容器,容器之间相互独立,包含软件运行的所有内容
3.Dockerfile:一个文本文件,包含创建Docker镜像的所有命令,开发者可自定义镜像内容
4.Docker-compose.yml:可以看成前几步的集合,更为便捷
5.Docker Hub:云端的镜像库,用户可以上传或拉取镜像 https://hub.docker.com
三.Docker安装
1.更新系统和更新源
sudo apt-get update
sudo apt-get upgrade
2.检查内核版本,Docker要求操作系统的内核版本高于3.10,往后会了解到内核提权
uname -a
3.安装Docker,kali linux上使用apt-get命令来安装
docker.io表示这是DockerHub的官方仓库,官方仓库可以省略仓库地址
apt-get install docker.io
4.启动Docker
systemctl start docker
5.设置开机自启动
systemctl enable docker
6.验证安装
docker version
7.检查Docker服务状态
systemctl status docker.service 确保服务运行状态颜色为绿色
四.Docker-compose安装
1.安装docker-compose
apt-get install docker-compose
2.验证安装
docker-compose version
3.更换国内的docker源,加快速度
vim /etc/docker/daemon.json
i进入插入模式,esc退出插入模式,输入:wq保存并退出
{
"log-level":"error",
"registry-mirrors":[
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
验证镜像加速是否生效:docker info
五.Docker常用命令
docker build:基于dockerfile文件构建一个镜像
docker build -f /path/to/Dockerfile -t myimage:latest. #从 /path/to/ 目录读取Dockerfile 并构建一个名为 myimage:latest 的镜像。
docker pull:拉取镜像
docker pull ubuntu:20.04 #会从 Docker Hub 拉取名为 ubuntu 的镜像,标签为 20.04
docker run:基于镜像创建容器
docker run -d -p 9527:80 -v /host/data:/data --name webserver ubantu:20.04
#运行一个命名为 webserver 的 nginx 容器,将主机的 8080 端口映射到容器的 80 端口,并将主机的/host/data 目录挂载到容器的 /data 目录。 游戏外挂和挂载也有关系
docker-compose:创建容器基于docker-compose.yml
docker-compose up -d
镜像管理:
1.拉取镜像
docker pull ubuntu:20.04
# 这个命令从 Docker Hub 拉取名为 `ubuntu` 且标签为 `20.04` 的镜像。
2.列出镜像
docker images #列出本地所有可用的docker镜像
3.删除镜像
docker image rm ubuntu:20.04
docker rmi ubuntu:20.04
4.提交容器为新镜像
docker commit CONTAINER IMAGE_NAME:TAG
# 将一个正在运行的容器 `CONTAINER` 提交为一个新的镜像 `IMAGE_NAME:TAG`
5.保存镜像文件到本地
docker save -o ubuntu-20.04.tar ubuntu:20.04
# 将 `ubuntu:20.04` 镜像导出到本地文件 `ubuntu-20.04.tar` 中 .tar即压缩
6.从本地文件加载镜像
docker load -i ubuntu-20.04.tar
# 从本地文件 `ubuntu-20.04.tar` 中加载镜像 `ubuntu:20.04`
容器管理:
1.创建容器
docker create -it ubuntu:20.04 #使用镜像ubuntu:20.04创建一个容器,容器系统会为它分配id
2.查看容器
docker ps -a
#查看本地所有容器(包括运行中的和停止的)关闭即销毁,关闭与停止不同
3.停止和启动容器
docker stop CONTAINER
docker start CONTAINER
4.重启容器
docker restart CONTAINER
5.创建并启动容器
docker run -p 20000:22 --name mycontainer -itd ubuntu:20.04# -i:交互模式
# -t:分配一个伪终端
# -d:后台运行容器
# --name:指定容器的名称
# -p:端口映射
# -v:挂载卷【把本机的文件夹变成容器的文件夹】
6.删除容器
docker rm CONTAINER
................
六.Docker实操
使⽤ docker pull 靶场镜像 docker.1ms.run/vulfocus/hms-cve_2022_25491
docker pull docker.1ms.run/vulfocus/hms-cve_2022_25491
启动镜像docker run -it -d -p 8888:80 -p 13306:3306 --name hms 1f
然后ip加端口访问
利用万能钥匙绕过,获取后台信息