渗透测试---docker容器

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果

目录

一、Docker的作用与优势

二、docker的核心组件

三、Docker与传统虚拟机的对比

四、实际应用场景

 五、Docker的安装和配置

命令更新:“sudo apt-get update”

“sudo apt-get install docker.io”,安装 Docker

启用docker

创建或编辑/etc/docker/daemon.json文件

配置docker镜像源

重新加载配置文件

重启docker服务

六、 docker拉取镜像与运行容器

拉取CentOS 7官方镜像

docker images 查看镜像

运行一个基于 CentOS 7 镜像的容器:

创建 Apache 容器后台运行

七、 docker常用命令

 “docker container ls”:查看所有容器。

 “docker ps”:列出所有正在运行的容器。

“docker exec -it 《ID》 /bin/bash”:进入特定容器。

 “docker container stop 《ID》”:停止容器。

 “docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。

 “docker top ”:查看特定容器的进程信息。

导出和导入容器

导出容器

导入容器快照

删除容器

删除镜像

八、下载自定义和多运行多镜像容器工具docker-compose

 介绍

安装

创建docker-compose文件

启动服务

停止服务



一、Docker的作用与优势

Docker 是一种开源的应用容器引擎,它允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,然后这个容器可以在任何支持Docker的平台上运行,无论是物理机、虚拟机、云服务还是数据中心。Docker的核心优势在于它的容器技术,这种技术提供了与虚拟机相比更为高效、快速且一致的运行环境。

二、docker的核心组件

  • 镜像(Image):Docker镜像是用来创建容器的模板,它是一个特殊的文件系统,包含了运行应用所需的代码、库、环境变量和配置文件。镜像是静态的,内容在构建后不会改变。

  • 容器(Container):容器是镜像的运行实例,它是隔离的、独立运行的环境,可以被创建、启动、停止、删除和暂停。容器在运行时会创建一个可写层,与镜像的只读层相结合,形成容器的文件系统。

  • 仓库(Repository):Docker仓库是用来存放镜像的地方,可以理解为代码仓库。用户可以将自己创建的镜像上传到仓库中,也可以从仓库中下载其他人分享的镜像。

三、Docker与传统虚拟机的对比

Docker容器与传统虚拟机相比,具有启动速度快、占用资源少、性能损耗低等优势。在Docker容器中,多个容器可以共享宿主机的内核,而传统虚拟机则需要为每个虚拟机实例运行一个完整的操作系统。这使得Docker容器在系统资源利用、应用部署和运行效率方面都优于传统虚拟化技术。

四、实际应用场景

Docker的应用场景非常广泛,从简单的微服务架构到复杂的分布式系统,都可以利用Docker的容器技术进行快速部署和高效管理。例如,开发者可以在本地使用Docker容器开发和测试应用,然后将容器部署到云服务上运行,无需担心环境不一致导致的问题。

总之,Docker通过其容器技术,为软件开发和运维提供了一种更加灵活、高效和可靠的解决方案,使得应用的打包、分发、部署和运行变得更加简单和标准化。

 五、Docker的安装和配置

更换kali镜像源使下载更快

#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

在vim /etc/apt/sources.list

并wq保存退出

命令更新:“sudo apt-get update”

“sudo apt-get install docker.io”,安装 Docker

启用docker

sudo service docker start

sudo docker ps:验证是否正常启动

创建或编辑/etc/docker/daemon.json文件

配置docker镜像源

重新加载配置文件

重启docker服务

六、 docker拉取镜像与运行容器

拉取CentOS 7官方镜像

sudo docker pull centos:7

docker images 查看镜像

运行一个基于 CentOS 7 镜像的容器:

sudo docker run -it --name my_centos7 centos:7 /bin/bash

  • -it 选项允许你交互式地运行容器。
  •     --name my_centos7 给容器命名为my_centos7。
  •     执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行CentOS 7系统的命令。
  •     centos:7 指定使用的镜像。
  •     /bin/bash 启动容器后执行的命令,这里启动了bash让你能与容器交互。

创建 Apache 容器后台运行

docker container run -d --rm -p 8080:80 httpd

  • docker container run:用于创建并启动一个新的容器。
  • -d:以分离模式运行容器,即在后台运行。
  • --rm:容器停止后自动删除。这对于避免容器停止后留下一堆未使用的容器很有帮助。
  • -p 8080:80:将主机上的 8080 端口映射到容器的 80 端口。这意味着您可以通过在浏览器中访问 http://localhost:8080 来访问运行在容器中的 web 服务器。
  • httpd:这是要使用的镜像,指的是在 Docker Hub 上提供的官方 Apache HTTP 服务器镜像。

七、 docker常用命令

 “docker container ls”:查看所有容器。

 “docker ps”:列出所有正在运行的容器

“docker exec -it 《ID》 /bin/bash”:进入特定容器

  • docker exec: 这个命令用于在运行中的容器内执行命令。
  • -it: 这两个选项一起使用:
    • -i:保持标准输入的打开,允许您与容器交互。
    • -t:分配一个伪终端,这样您可以使用交互式命令行。
  • 《ID》: 这是您要进入的容器的名称或 ID。请确保这个 ID 或名称是正在运行的容器。
  • /bin/bash: 这是您希望在容器内执行的命令。在这里,它表示启动一个 Bash shell,这样您就可以直接在容器内操作。

 “docker container stop 《ID》”:停止容器

 “docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd”:挂载宿主机目录运行容器。

以/home/kali为例。容器的目录已经挂载到了宿主机了。

 “docker top <container_name_or_id>”:查看特定容器的进程信息

导出和导入容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。导出为tar文件

docker export 1e560fca3906 > ubuntu.tar
docker export 1e560fca3906 -o ubuntu2.tar
导入容器快照
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:

$ cat docker/ubuntu.tar | docker import - test/ubuntu:v1
$ docker import docker/ubuntu.tar test/ubuntu:v1
  • -:表示从标准输入中读取数据

删除容器

删除容器使用 docker rm 命令:

docker rm -f <ID>
  • -f:强制删除正在运行的容器。如果容器正在运行,需要添加此选项才能删除它。

删除镜像

镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:

docker rmi hello-world

八、下载自定义和多运行多镜像容器工具docker-compose

 介绍

docker-compose 是一个用于定义和运行多容器 Docker 应用程序的工具。可以使用 YAML 文件来配置应用程序的服务,然后通过一个命令来启动所有服务。

安装

apt install docker-compose

或者

运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

创建docker-compose文件

vim docker-compose.yml

示例

version: '3.8'  

services:  
  web:  
    image: httpd  
    ports:  
      - "8080:80"  
    volumes:  
      - ./html:/usr/local/apache2/htdocs/  

  db:  
    image: mysql:5.7  
    environment:  
      MYSQL_ROOT_PASSWORD: example  
    volumes:  
      - db_data:/var/lib/mysql  

volumes:  
  db_data:

启动服务

在包含 docker-compose.yml 文件的目录中,您可以使用以下命令启动所有定义的服务:

docker-compose up

如果您希望它在后台运行,可以加上 -d 参数:

停止服务

docker-compose down
  • docker-compose ps:列出当前正在运行的服务。
docker-compose ps
  • docker-compose logs:查看服务的日志。
docker-compose logs
  • docker-compose exec <service> <command>:在指定服务的容器中执行命令。
docker-compose exec <service> <command>

好啦,以上就是本文的内容,希望对你有所帮助咯。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值