快速上手docker——docker用法篇

admin 2024年6月29日02:12:10评论1 views字数 2126阅读7分5秒阅读模式

前言

由于最近的工作很多都是需要搭建漏洞环境对漏洞进行复现,所以自己也对docker的使用越来越熟练,想写一篇记录下使用docker遇到的一些问题和比较好用方便的 docker命令。

docker简介

Docker 是一种开源的自动化应用程序部署的平台,它使应用程序的打包、分发和管理变得更为简便和高效。Docker 使用容器来运行应用程序。容器可以被看作是轻量级的、可执行的软件包,它包含了运行某个软件所需要的所有内容:代码、运行时环境、库、环境变量和配置文件。

核心概念

  • 容器:容器是Docker的基本单元,它是一个隔离的环境,可以在其中运行应用程序和服务。容器是从镜像创建的,运行时包含了应用及其所有的依赖。

  • 镜像:镜像是一个轻量级、只读的模板,用于创建容器的实例。镜像包含有运行应用所需的代码、库、环境变量和配置文件。

  • 仓库仓库是集中存放镜像的地方。Docker Hub 是最著名的公共仓库,用户也可以搭建私有仓库来存放私有镜像。


docker用法

我这边拿kali安装docker举例,安装参考:https://cloud.tencent.com/developer/article/2348189,安装成功如图快速上手docker——docker用法篇

如果你想使用docker搭建一个漏洞环境,首先你需要在docker hub或者其他的平台找到对应的docker镜像,然后使用docker pull命令拉取镜像。

这里拿CVE-2021-41773漏洞举个例子,在vulfocus搜索漏洞到该漏洞镜像如下:

快速上手docker——docker用法篇

使用docker pull vulfocus/apache-cve_2021_41773:latest拉取镜像,这里注意由于docker hub最近对国内用户非常不友好,直接拉取镜像可能会拉取不成功,如下:

快速上手docker——docker用法篇

解决这个问题可以使用容器加速服务,之前使用阿里云的容器加速服务可以正常进行镜像拉取,但是最近发现拉取某些镜像也是不行了,找到了一个好用的容器加速地址https://docker.1panel.live/,依次执行命令如下


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.1panel.live/",
"https://docker.m.daocloud.io",
"https://2h3po24q.mirror.aliyuncs.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

使用docker info命令查看docker配置是否生效,如下

快速上手docker——docker用法篇

再次执行docker pull拉取镜像,已经可以正常拉取,如下:

快速上手docker——docker用法篇

docker images查看拉取成功的镜像

快速上手docker——docker用法篇

docker ps查看启动的docker环境

快速上手docker——docker用法篇

docker run命令启动漏洞环境,CVE-2021-41773这个漏洞直接使用docker run -d -p 80:80 image_id 启动即可,如下

快速上手docker——docker用法篇

接着访问kali的80端口,看环境启动是否正常,如下:

快速上手docker——docker用法篇

想要进入容器的命令行,可以使用docker exec -it CONTAINER ID bash,如下:

快速上手docker——docker用法篇

想要修改docker镜像并保存修改,可以使用                                              docker commit CONTAINER ID REPOSITORY:TAG命令,如下

快速上手docker——docker用法篇

如何把docker环境打包发给别人,让别人可以直接使用你的环境呢?这里可以使用docker save -o 文件名.tar REPOSITORY:TAG命令,如下:

快速上手docker——docker用法篇

想加载别人打包好的docker环境,直接使用docker load -i 文件名.tar即可

快速上手docker——docker用法篇

想要对docker镜像的标签进行修改,可以使用                                                    docker tag IMAGE ID REPOSITORY:TAGIMAGE ID为要修改标签的镜像id,这里IMAGE ID也可以是原来的镜像的标签,REPOSITORY:TAG为要修改的标签,如下

快速上手docker——docker用法篇

注意

对于docker单个镜像的漏洞环境可以直接打包成tar发给别人使用,但是如果一个环境存在多个镜像无法通过docker save方式打包给别人使用,分开启动会导致环境无法正常启动,可以使用dokcer-compose启动dockerfile方式启动,这是可以连互联网的方式,如果是内网环境,可以使用vmvare导出vmdk或者使用别的平台创建漏洞环境,例如可以使用openstack创建实例把配置好的漏洞环境,导出成raw,把raw文件发送给别人即可。缺点就是文件大,没有docker传输方便。

docker有些环境启动需要访问互联网,这也是最近工作遇到的一个坑点,一个正常的环境在内网环境无法正常启动,排查发现环境启动需要访问互联网上的某些服务,所以遇到一些需要交付的docker漏洞环境,最好在断网的情况下测试一遍,没有问题才算可以。










原文始发于微信公众号(随风安全):快速上手docker——docker用法篇

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月29日02:12:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   快速上手docker——docker用法篇https://cn-sec.com/archives/2895084.html

发表评论

匿名网友 填写信息