技术分享

Technology sharing

docker简单实用教程
2018-09-25 15:59

本文为原创文章,转载请注明出处!


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

微信图片_20180925153228.jpg

第二步:选择一个docker镜像,将他pull下来默认的tag是latest(相当于版本号),我们选择tutum/lamp镜像

dockerpull image:tag

然后我们查看一下我们docker已经有哪些镜像了

   dockerimages

微信图片_20180925153339.png

我们可以看到,tutum/lamp已经在我们的本地镜像列表了,tag是latest,还显示了镜像的ID,以及该镜像的创造时间


第三步:用该镜像创建并运行一个容器,并通过端口映射将容器的80端口映射到主机的8080端口

dockerrun -d --name=container_name -p 8080:80 tutum/lamp

然后用如下命令进入容器的命令行

dockerexec -it container_name /bin/bash

微信图片_20180925153453.png

我们可以看到root@后面的用户名已经改变了,成功进入容器内部

然后切换到/var/ww/html目录

cd/var/www/html

然后把我们的web应用程序放在html目录下,然后执行如下命令启动apache


serviceapache2 start

我们可以用ctrl+p+ctrl+q退出容器,并后台运行容器,然后再访问主机的8080端口

微信图片_20180925153534.jpg

我们可以看到,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端口

微信图片_20180925153721.jpg

挂载成功,如果需要修改文件就只用修改在主机上挂载的文件就可以了

有些时候,我们pull下来的镜像并不能满足我们的要求,那么我们可以在其基础上在进行改动,然后把改动后的容器打包成镜像方便我们后面使用。举个例子:比如我们pull下来的tutum/lamp镜像没有安装vim,那么我们可以在里面安装好vim,然后将其打包为一个新的镜像,以后用这个镜像创建的容器就有vim了。


把容器打包为镜像需要使用dockercommit命令:

dockercommit -a "Drac0nids" -m "lamp base"container_nameimage_namedockercommit命令的具体用法如下:

微信图片_20180925153756.jpg


docker仓库的使用


首先去https://hub.docker.com/注册一个账号(需要科学上网,不然有个谷歌的人机验证看不到导致不能注册
微信图片_20180925153832.jpg
有了账号以后可以用dockerlogin命令来登录我们的账号(退出登录使用dockerlogout
微信图片_20180925153909.jpg
我们使用docker仓库的主要目的是上传保存我们的镜像,以便以后使用的时候可以直接拉取下来用,首先我们用dockerimages查看我们有哪些image
微信图片_20180925153943.png
我们用如下命令将镜像上传到docker仓库
dockerpush image_name:tag
微信图片_20180925154019.jpg

这里会出现如下错误信息

denied:requestedaccesstothe resource isdenied
解决办法是用dockertag命令将原镜像镜像名命名为用户名/镜像名
dockertag lamp_base:latest drac0nids/lamp_base:latest
然后再执行dockerpush命令(只有一个tag的时候可以省略)
dockerpush drac0nids/lamp_base
微信图片_20180925154613.jpg
要查看我们上传的的镜像可以登录 https://hub.docker.com/ 查看
微信图片_20180925154646.jpg
然后要用的时候就直接pull下来就可以了docker pull drac0nids/lamp_base
使用docker仓库的好处就是方便在不同的机器上共享image





文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。


上一篇:带你入逆向坑,怎样在win10上安装并使用Z3库
下一篇:一次比赛的木马从分析到种马接着删马
版权所有 合天智汇信息技术有限公司 2013-2018 湘ICP备14001562号-6
Copyright © 2013-2018 Heetian Corporation, All rights reserved
4006-123-731