docker容器 一、docker容器是什么 软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,比如上节课我把我安 装的虚拟机给你们打包了,前面的这种打包方式是将整个虚拟机打包了,对吧,这样打包出来的体积太大了,而且如果你只是单纯的想要 一个安装好的程序,比如sqlserver数据库,不想自己安装,就想要个安装好的,按照之前的打包方式,太费事费力的,你打包个安装了 sqlserver数据库的虚拟机,光虚拟机本身的操作系统可能就占用了20个G,sqlserver本身可能也就1个G,这是不是就太不合适了,当然 我们自己不会或者不想安装sqlserver的时候,可以选择找个哥们帮你安装一下,但是如果100个人都找你安装,你是不是累死了,所以在 这种情况,容器技术就诞生了,容器技术中的依依者,就是docker,它的底层实现原理我们现在不用纠结。用它来打包出来的软件,体积 会非常小。比如如果在一个虚拟机上安装了nginx,那么这个虚拟机怎么也要1G以上,但是用docker打包的已经安装好的nginx,可能也 就100M左右,体积小很多。接下来我们感受一下docker的使用。后面我们可以将很多部署起来很繁琐的靶场环境都通过docker来打包。 所以现在网上也有很多使用docker跑起来的靶场,复用性非常好,别人打包好的,你直接拿来就用。而且docker有个东西叫做仓库,打 包的东西直接放在仓库里面,全世界都可以共享。docker是2013年诞生的。
docker打包出来的每个软件,称之为docker镜像。可以说整个IT领域,不管是哪个工种,都需要好好学习docker。
docker是CS架构的程序,客户端控制服务端来做各种事情。
二、docker的安装 centos用yum安装,kali用apt安装,kali属于debian系列的操作系统
CentOS7安装docker 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 yum install docker -y systemctl start docker systemctl enable docker docker run -d -p 80:80 nginx docker run -d -p 81:80 nginx:1.16 docker run --name mysql -e MYSQL_ROOT_PASSWORD=1234565 -d mysql:5.7 docker run -d --link mysql:mysql -p 86:80 wordpress:5.6
Kali安装docker 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - wget https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg apt-key add gpg vi /etc/apt/sources.list 以下内容替换文件里的所有内容 deb [trusted=yes ] http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb [trusted=yes ] http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb [trusted=yes ] http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb [trusted=yes ] http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse apt update sudo apt-get instal1 docker docker-compose -y或 sudo apt-get install docker.iosystemctl status docker docker -v
网络安全有一项工作叫做漏洞复现,有些软件、框架、webserver等等他们某些版本会有各种漏洞,官方看到之后肯定会修复升级,但是 某个使用了这些软件的公司可能并没有升级,那么就需要我们检测一下是否真的存在这个漏洞,不能直接再生产环境上去测试,需要在测 试环境或者开发环境或者自己搭建的环境中进行漏洞测试,这就是漏洞复现的工作。所以我们好多时候都需要自己来搭建相同版本的软件 环境来进行漏洞复现,搭建的环境的时候我们就可以使用docker,很方便。
1 2 3 4 5 6 docker run -d -p 80:80 nginx docker run -d -p 80:80 nginx:1.16
这里需要使用国内的镜像加速器
1 2 sudo nano /etc/docker/daemon.jason
复制以下内容到文件里
1 2 3 4 5 6 7 8 { "registry-mirrors" : [ "https://docker.m.daocloud.io" , "https://huecker.io" , "https://dockerhub.timeweb.cloud" , "https://noohub.net" ] }
保存重启docker服务
1 2 sudo systemctl daemon-reloadsudo systemctl restart docker
验证是否生效,执行 docker info,在输出中查看 Registry Mirrors 列表是否包含了你刚才配置的地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run -d --link mysql:mysql -p 86:80 wordpress:5.6 cd /etc/dockervim docker.json { "registry-mirrors" :["https://registry.docker-cn.com" ] } systemctl restart docker systemctl start docker systemctl enable docker systemctl stop docker
docker run首先检测本地是否已经有了软件镜像,如果没有,它会自动去下载镜像,然后运行,运行起来的镜像,我们称之为容器,可以理解为每个软件都安装在了一个自己的小空间里面。
docker 镜像 容器
镜像——>安装了某些特定程序的文件——>压缩文件
容器——>镜像运行起来之后,就叫做容器(而不叫进程)
三、镜像常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 docker search docker images docker pull docker push docker rmi