本文为原创文章,转载请注明出处!
docker是什么?
docker是一个开源的容器引擎,其核心部件docker镜像,docker镜像可以理解为预装了一些应
用程序的操作系统镜像(也有没有搭建任何环境的初始镜像)
docker能干什么?
docker可以用来快速部署应用程序需要运行的环境以及各种依赖
比如如果我们要运行一个依赖于lamp环境的web应用,那么我们只需要直接pull一个lamp的镜
像,然后用此镜像创建一个容器来运行我们的web应用,而不需要我们自己再搭建lamp环境。
docker技术的优点是什么?
快速搭建环境,体积小(一个docker镜像的体积可能只是虚拟机镜像的十分之一),跨平台运行。
作为安全人员,我们可能会经常搭建一些web环境,传统的搭建方法都很繁琐低效,而docker的应用可以大大提高我们搭建环境的效率。这篇文章会介绍一些docker在搭建web环境中的一些简单应用,如果读者想要深入的学习docker,可以自行查阅官方文档。
部署基于lamp环境的web应用
第一步:用dockersearch命令搜索lamp镜像
dockersearch image_name
第二步:选择一个docker镜像,将他pull下来默认的tag是latest(相当于版本号),我们选择tutum/lamp镜像
dockerpull image:tag
然后我们查看一下我们docker已经有哪些镜像了
dockerimages
我们可以看到,tutum/lamp已经在我们的本地镜像列表了,tag是latest,还显示了镜像的ID,以及该镜像的创造时间
第三步:用该镜像创建并运行一个容器,并通过端口映射将容器的80端口映射到主机的8080端口
dockerrun -d --name=container_name -p 8080:80 tutum/lamp
然后用如下命令进入容器的命令行
dockerexec -it container_name /bin/bash
我们可以看到root@后面的用户名已经改变了,成功进入容器内部
然后切换到/var/ww/html目录
cd/var/www/html
然后把我们的web应用程序放在html目录下,然后执行如下命令启动apache
serviceapache2 start
我们可以用ctrl+p+ctrl+q退出容器,并后台运行容器,,然后再访问主机的8080端口
我们可以看到,web服务已经成功运行了
除了这种在容器内部部署web应用程序的方法,docker还提供了一种挂载目录的方法,通过-v参数,将主机目录挂载到容器的某个目录。
一个小小的demo来展示-v参数的用法
首先,在主机创建一个目录,然后用tutum/lamp镜像创建一个容器,并通过-v参数来将主机目录挂载到容器然后在运行容器的lamp环境
dockerrun -d --name=test -p 9090:80 -v /var/test/:/var/www/html tutum/lamp
/var/test/目录下index.html文件内容如下:
<h1>
helloworld
</h1>
现在访问一下9090端口
挂载成功,如果需要修改文件就只用修改在主机上挂载的文件就可以了
有些时候,我们pull下来的镜像并不能满足我们的要求,那么我们可以在其基础上在进行改动,然后把改动后的容器打包成镜像方便我们后面使用。举个例子:比如我们pull下来的tutum/lamp镜像没有安装vim,那么我们可以在里面安装好vim,然后将其打包为一个新的镜像,以后用这个镜像创建的容器就有vim了。
把容器打包为镜像需要使用dockercommit命令:
dockercommit -a "Drac0nids" -m "lamp base"container_name
image_namedockercommit命令的具体用法如下:
docker仓库的使用
首先去https://hub.docker.com/注册一个账号(需要科学上网,不然有个谷歌的人机验证看不到导致不能注册
有了账号以后可以用dockerlogin命令来登录我们的账号(退出登录使用dockerlogout)
我们使用docker仓库的主要目的是上传保存我们的镜像,以便以后使用的时候可以直接拉取下来用,首先我们用dockerimages查看我们有哪些image
我们用如下命令将镜像上传到docker仓库
dockerpush image_name:tag
这里会出现如下错误信息
denied:requestedaccesstothe resource isdenied
解决办法是用dockertag命令将原镜像镜像名命名为用户名/镜像名
dockertag lamp_base:latest drac0nids/lamp_base:latest
然后再执行dockerpush命令(只有一个tag的时候可以省略)
dockerpush drac0nids/lamp_base
要查看我们上传的的镜像可以登录 https://hub.docker.com/ 查看
然后要用的时候就直接pull下来就可以了docker pull drac0nids/lamp_base
使用docker仓库的好处就是方便在不同的机器上共享image
文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。
网友评论