Docker~介绍
docker组成部分
- Docker Client 客户端
- Docker Daemon 守护进程
- Docker Image 镜像——关键之一
- Docker Container 容器——关键之一
[!NOTE]
VMware是完全虚拟,硬件虚拟化,虚拟操作系统,驱动,应用程序-——安全,物理隔离。
共用主机的部分应用程序,服务。
云安全。有docker逃逸?
安装方式:(推荐Linux系统)
docker.io: apt install docker.io Debian团队维护和打包
docker.ce: Docker 官方团队维护和打包
docker.ee: 商业版
Docker环境安装:使用yijing快速安装:
1 2 3 4 5
| cat etc/apt/soureces.list git clone https://gitee.com/yijingsec/LinuxEnvConfig.git cd LinuxEnvConfig sudo bash LinuxEnvConfig.sh
|
1 2
| apt install docker.io #手动版? 可以无视这个捏 apt remove docker docker-engine docker.io #卸载旧版本
|
相关命令操作:
1 2 3 4 5 6 7 8
| systemctl status docker
systemctl start docker
systemctl enable docker
|
有必要的话还要安装docker-compose:最新版会自带的;
Docker基础操作部分:
1.对镜像的操作:
1 2 3 4 5 6 7
| docker image ls -a docker images REPOSITORY:镜像所在的仓库名称 TAG:镜像标签 IMAGEID:镜像ID CREATED:镜像的创建日期(不是获取该镜像的日期) SIZE:镜像大小
|
1 2 3 4 5 6 7 8
| docker image pull:抓取 image 文件的命令 library/hello-world:image 文件在仓库里面的位置 library:是 image 文件所在的组 hello-world:是 image 文件的名字 #当然因为image都是在library里面的 所以你可以 docker image pull hello-world #顺便一提,这个命令其实也不是很重要,后面的docker run 或者 docker-compose up -d #都是会自动拉取镜像下载的w
|
顺便一提,速度好慢;拉取镜像建议还是直接拉国内的项目or proxychains
1 2 3 4 5 6 7 8
| #先列出镜像 docker images docker image rm 镜像名或镜像id docker rmi 镜像名或镜像id 如:
docker image rm hello-world docker rmi feb5d9fea6a5
|
看一下就知道没拉~
2.对Docker 容器进行操作
1 2 3 4 5 6 7 8 9 10 11 12 13
| docker run hello-world
-i 表示以“交互模式”运行容器 -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。 --name 为创建的容器命名 -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。 -d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果加-i -t 两个参数,创建后就会自动进去容器)。 -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射 -e 为容器设置环境变量 --network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同
docker run -d --name=Myhello hello-world docker run -it --name=Myhello hello-world /bin/bash
|
创建成功的样子娅:
再来个交互式运行的:(事实证明就算没有library,没有image都是可以直接run的
这里面的文件目录都是虚假的,点进去也没有内容的x 想退出的话就exit
1 2 3 4 5
| #创建完之后当然是....删除掉啦! docker stop 34d #暂停运行 docker kill 34d #杀掉一个在运行的进程 docker rm -f 34d #强制删除 docker rm $(docker ps -aq) -f #全部删除
|
3.容器保存为镜像 (怎么说也不一定用得到
1 2 3
|
docker commit mycentos3 mycentos3
|
4.镜像备份与迁移
1 2 3
| docker save -o ./mycentos3.tar mycentos3 docker load -i ./mycentos3.tar
|
docker搭建漏洞靶场
克隆Vulhub项目
1 2 3 4 5 6 7
| git clone https://gitee.com/yijingsec/vulhub.git cd vulhub-master cd thinkphp/5.0.23-rce
docker-compose up -d
docker-compose down
|
VulnaApps
1
| https://gitee.com/yijingsec/VulApps
|
打开浏览器访问:https://gitee.com/yijingsec/VulApps
打开read.me 按照文档操作就好了
1 2 3 4 5 6 7
| # 以启动thinkphp漏洞环境为例
docker pull medicean/vulapps:t_thinkphp_2
docker run -d -p 80:80 medicean/vulapps:t_thinkphp_2
# -p 80:80 前面的 80 代表物理机的端口,可随意指定;后面的 80 为docker容器中的web服务端口,默认端口80。
|
Vulfocus
安装:
1 2 3 4 5 6
| git clone https://gitee.com/yijingsec/LinuxEnvConfig.git
cd LinuxEnvConfig
sudo bash LinuxEnvConfig.sh docker run -d -p 88:80 --name vulfocus --restart always -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=192.168.190.214 registry.cn-hangzhou.aliyuncs.com/mingy123/vulfocus:latest
|
你的密码~