docker简单实用教程

作者: 蚁景科技 | 来源:发表于2018-09-25 10:03 被阅读160次

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


    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


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

    相关文章

      网友评论

        本文标题:docker简单实用教程

        本文链接:https://www.haomeiwen.com/subject/dpukoftx.html