docker与小型集群服务器取证分析

Docker基础概述

一般安装在linux中,是一个开源的基于LXC的高级容器引擎,要操作docker就要使用指令命令

三大核心

镜像(Image):相当于软件安装包,不能修改

仓库(Respository) :存放大量镜像资源,类似市场

Docker Registry公开服务:官方、阿里云等

私有Docker Registry:本地搭建私有仓库

私有仓库:

容器(Container):安装完成之后形成容器,可以进行修改、操作

三者关系图

容器与虚拟主机架构对比

容器是不需要底层架构的,虚拟主机是需要操作系统的,所以容器便于移植,会自己封装打包自己的东西,不会使用操作系统

基础命令:

service docker start 开启docker

docker info 查看docker基本数据

配置网卡数据:ipconfig ens37 192.168.152.120/24

ipconfig ens37 up

查看镜像指令:docker images/image ls

查看当前正在运行的容器:docker ps

查看之前运行过的容器: docker ps -a

启动之前运行过的容器: docker start +ID前三位就好

获取镜像 :docker pull +镜像

进入容器内部命令:docker exec -it ID前三位 /bin/bash

启动或者新建容器(如果之前没有就新建):docker run

删除容器:docker container rm -f +ID

删除镜像:docker image rm [选项] <镜像>可简写为docker rmi 镜像ID

Docker数据管理

没理解很透

Layer:一组readonly和writeable结构构成的container的运行目录。多个container可以共享readonly的layer,所以docker将readonly层称作image,image不保存用户状态,container可以修改所有数据。上层image依赖下层image,下层也成为父image。所以想要加载image就要先加载父image一直到base image。数据写入全在container这一个里面。

默认容器的数据都是存在容器的可读写层,当容器被删掉时他上面的数据会跟着丢失,所以要采取方法来持久保存数据,方式如下

数据卷(volumes)(/var/lib/docker/volumes):

使用docker volume ls 查看数据卷

.bash_history存放历史命令

挂载主机目录(Bind mounts):

Dockerfile与Dockercompose

Dockerfile

Dockerfile是文本文件,包含了一条条指令,每条指令构建一层,表示该层如何构建,用来构建镜像

使用镜像来构建容器

docker run --name 名字 -P -e MYSQL_ROOT_PASSWORD=meiyapico -d mysql:5.7

-P 表示随机生成端口

5.7是mysql版本

数据库是需要密码的

Docker-compose

一个网站需要多个容器,就会对应多个Dockerfile文件,逐个运行非常麻烦就可以考虑docker-compose文件,默认文件名为docker-compose.yml

查找dockers-compose命令

find / -name docker-compose.yml

里面有docker的各种信息,可以将里面的网站放到本地hosts里面,方便我们下一步访问,这里发现火绒可以直接找到hosts文件

通过docker-compose build 指令搭建docker网站,运行完之后就会下载到我们的本地

然后通过docker-compose up运行网站

找域名:导出网站文件,在note++里面建立文件夹,然后搜索host或者www来找到域名,然后放到hosts里面

内容

services主要用来定义各个容器

build指定Dockerfile所在文件夹路径

>networks定义需要使用到的网络

environment定义环境变量

depends_on依赖指定容器

常用命令:

docker-compose config 验证文件格式
docker-compose build 通过.yml文件构建镜像
docker-compose up 自动构建镜像,启动服务,运行网站
docker-compose images 列出compose文件中包含的镜像
docker-compose ps 列出项目容器

Docker数据的提取

windows下docker镜像的存储

默认存储在C盘,但会与vmware端口冲突,可在管理工具中的hyper-v管理器中看到当前数据存储的路径。

windows窗口下的docker Settings中有共享目录(与windows),是我们主要提取的

Docker数据取证的固定与还原

dockers数据宿主机存放位置查看

先用docker ps 查看id

再用docker inspect id查看路径,此时会有两个路径,一个是source一个是destination,source是在宿主机上存储的路径,destination是在docker容器里面存放的

如果存在权限

查看docker内mysql用户权限:

select host,user,plugin,authentication_string from mysql.user;

修改root用户权限:

ALTER user 'root'@'%'IDENTIFIED WITH mysql_native_password BY 'root1234'

刷新:

FLUSH PRIVILEGES

进入容器mysql修改配置:

docker exec -it containerid /bin/bash

vi /etc/mysql/conf.d/docker.cnf 进入dockers.cnf文件然后输入skip-grant-tables可以掠过数据库然后创建新的账号密码

docker-compose建站数据提取

通过命令docker inspect mysql_01查看容器详细信息,找到编排工作目录的路径,然后访问ls

docker数据的固定导出和还原

固定容器:Docker export导出/import还原

容器归档为镜像:docker commit 容器名 固定出来的镜像名字:标记名

固定镜像:Docker save 导出/load 还原

导出镜像:docker save -o 包名.tar 上面那个固定出来的镜像名字:标记名

推荐固定导出镜像,因为导出容器的话数据不全

还原时,要先把原来的镜像给删除了才能还原

还原指令:docker load -i 包名.tar

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值