Docker

Docker安装

Docker简介

Docker是什么
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器
中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机
制,相互之间不会有任何接口。
Docker组成部分
Docker Client客户端
Docker Daemon守护进程
Docker Image镜像
Docker Container 容器

Docker环境安装

  • 安装必要的一些系统工具

sudo apt update

  • 添加 Docker PGP key

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-ce-archive-keyring.gpg

  • 写入软件源信息

printf ‘%s\n’ “deb https://download.docker.com/linux/debian bullseye stable” | sudo tee /etc/apt/sources.list.d/docker-ce.list

  • 更新 APT

sudo apt update

  • 如果安装了旧版本的 Docker ,先卸载它们

sudo apt remove docker docker-engine docker.io

  • 安装 Docker

apt install docker-ce docker-ce-cli containerd.io

  • 证明安装完成

doeker ps

docker --version

  • 查看 Docker 状态

systemctl status docker

  • 开机自动启动

systemctl enable docker

  • 安装 docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.12.2/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose

  • 给与权限

chmod +x /usr/local/bin/docker-compose

Docker基础操作

service docker restart重启Docker服务
service networking restart重启网络服务

Docker镜像操作

  • 列出镜像

docker images 或者 docker image ls -a

REPOSITORY:镜像所在的仓库名称

TAG:镜像标签

IMAGEID:镜像ID

CREATED:镜像的创建日期(不是获取该镜像的日期)

SIZE:镜像大小

  • 拉取镜像

docker image pull hello-world 或者 docker image pull library/hello-world

docker image pull:抓取 image 文件的命令

library/hello-world:image 文件在仓库里面的位置

library:是 image 文件所在的组

hello-world:是 image 文件的名字

删除镜像

docker image rm 镜像名或镜像id :latest

docker rmi 镜像名或镜像id

如:

docker image rm hello-world:latest

docker rmi feb5d9fea6a5

Docker容器操作

  • 创建容器

docker run [option] 镜像名 [向启动容器中传入的命令]

  • 常用可选参数说明:

-i 表示以“交互模式”运行容器

-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。

–name 为创建的容器命名

-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。

-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。

-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射

-e 为容器设置环境变量

–network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同

  • 交互式容器

# 创建一个交互式容器,并命名为mycentos

docker run -it --name=mycentos centos /bin/bash

# 在容器中可以随意执行linux命令,就是一个centos的环境,当执行exit命令退出时,该容器

也随之停止。

  • 守护式容器

# 创建一个守护式容器,并命名为mycentos2

docker run -dit --name=mycentos2 centos

# 如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出

时,容器也不会停止。

  • 进入运行容器

docker exec -it 容器名或容器id 进入后执行的第一个命令

例如:

docker exec -it mycentos2 /bin/bash

  • 查看容器

列出本机正在运行的容器

docker container ls = docker ps

列出本机所有容器,包括已经终止运行的

docker container ls all = docker ps -a

  • 停止与启动容器

停止一个已经在运行的容器

docker container stop 容器名或容器id

docker stop 容器名或容器id

启动一个已经停止的容器

docker container start 容器名或容器id

docker start 容器名或容器id

kill掉一个已经在运行的容器

docker container kill 容器名或容器id

docker kill 容器名或容器id

  • 删除容器

docker container rm 容器名或容器id

docker rm 容器名或容器id

容器保存为镜像

# docker commit 容器名 镜像名

docker commit mycentos3 mycentos3

镜像备份与迁移

可以通过save命令将镜像打包成文件,拷贝给别人使用

# docker save -o 保存的文件名 镜像名

docker save -o ./mycentos3.tar mycentos3

对方在拿到镜像文件后,可以通过load方法,将镜像加载到本地

docker load -i ./centos.tar

Docker搭建漏洞靶场

Vulhub

  • 在kali终端复制如下命令,克隆项目到本地:

git clone https: github.com/vulhub/vulhub.git

  • 进入目录选定自己需要使用到的靶场,使用命令拉取镜像并开启容器。

cd vulhub-master

cd thinkphp/5.0.23-rce

docker-compose up -d

Vulnapp

  • 打开浏览器访问

https://github.com/Medicean/VulApps

  • 查看漏洞所对应的目录下的 README.md 文件

  • 然后按照文档给的环境启动命令依次复制粘贴到服务器上执行即可

# 以启动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

#Vulfocus 官网

https: github.com/fofapro/vulfocus

#在线 Vulfocus

https: vulfocus.cn/

#Vulfocus 镜像仓库

https: hub.docker.com/u/vulfocus

  • 通过 docker 拉取镜像 vulfocus/vulfocus

docker pull vulfocus/vulfocus:latest

  • 开启靶场

docker create -p 88:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=xx.xx.xx.xx vulfocus/vulfocus

  • 参数介绍

-p 前边的端口代表物理机的端口,后边的端口是docker的端口

-v /var/run/docker.sock:/var/run/docker.sock 为 docker 交互连接。

e VUL_IP=xxx.xxx.xxx.xxx 为运气 Docker 的服务器 IP ,不能为 127.0.0.1。

  • 上述步骤只是添加了 docker 容器,并未进行启动,需要通过命令启动

docker container start 容器ID

  • 此时靶场已经开启,打开浏览器访问服务器IP加88端口即可打开

http: 192.168.81.57:88

默认账号密码为 admin admin

docker run -d privileged -p 88:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=xx.xx.xx.xx vulfocus/vulfocus

最好不用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值