docker简单操作&安装Apache和php,docker操作


docker

  • docker可以让开发者打包他们的应用、服务程序到一个轻量级、可移植的容器中,然后发布。理解成镜像是类,容器是实例对象。docker镜像是用于创建docker容器的模板,容器是独立运行的一个或者一组应用。我们下载一个Ubuntu的docker镜像,里边只有很精简的内容供启动等简单的功能,我们需要按照需求打造容器,重新打包成一个功能更多的镜像。

  • 注:本文并不是针对web上或者运维的docker使用,只是复现漏洞时需要使用docker知识,在此简介,同时方便复习

常用命令

  • docker下安装Ubuntu镜像

    docker pull ubuntu (若不指定Ubuntu版本则默认下载最新)

  • 管理使用本地主机镜像

    docker images

  • 运行容器

    docker run -i -t 2ce2211f2d5 /bin/bash

    注:这样可以启动一个容器并开启一个伪终端,若加上 -d 参数则在后台同时开启该容器

    • 加-d 是不会开启一个伪终端的,若想开启伪终端进行交互,则需使用exec 命令

      使用exec 加的是容器ID,而用run方式开启伪终端加的是镜像ID,先有run才有exec

      那么为什么不能再次用 -i -t 开启一个伪终端呢?如下,若再次用 -i -t 参数开启伪终端,使用ps命令查看只有一个运行容器,但是用 docker ps -a 查看所有容器,会出现两个镜像ID相同,容器ID不同的容器,如果主机映射了Apache端口,那么是不会找到对应的服务的,产生错误。

      综上,要么docker run -i -t 直接开启伪终端(这样退出容器后,就不会在后台运行,若想进入容器,需要docker start +容器ID,然后docker exec -i -t 容器ID /bin/bash 开启伪终端,建立交互),要么就加-d参数,这样退出容器,后台依然运行容器,无需start即可exec进入容器,建立交互

  • 删除容器,删除镜像命令(删除容器需要先docker stop停止容器运行)

    删除容器:docker rm 容器ID

    删除镜像:docker rmi 镜像ID

    可以一次删除多个容器、镜像,ID号之间空格分隔

搭建Apache+php7.2

注:以下所有步骤在上边完成,并进入容器内进行

  • 先更新软件

    apt-get update

  • 安装Apache2

    apt-get install apache2

  • 装php7.2

    apt-get install php7.2

  • 关联Apache与php(这样启动Apache服务同时就能启动php服务了)

    apt-get install libapache2-mod-php7.2

  • 启动Apache2服务

    service apache2 start

  • 查看Apache服务状态

    service apache2 status

     

保存为镜像

注:若不将下载的好的服务,配置保存,下次进入就没了(全是泪。。。)

  • 退出容器

    exit

  • 停止运行容器(若不停止容器就打包,可能会成功,但最后某一次(比如隔一天)访问Apache时一定会失败!!!)

    docker stop 容器ID(若是直接docker run -i -t 开启容器,则不需要这步)

  • 打包为新镜像

    docker commit -a "kill" -m "my apache" 容器ID  apache/php7.2:v1.0
    -a:镜像作者
    -m:镜像说明
    最后边为自己命名的镜像名

如此大功告成,外网想要访问Apache,只需将映射主机端口,进入容器,开启服务即可,Nginx安装大同小异

  • 命令汇总

    docker pull ubuntu 下载Ubuntu镜像
    docker images 查看本地所有镜像
    docker ps 查看运行中的容器
    docker ps -a 显示所有容器,包括未运行的
    docker rm 容器ID 删除停止运行的容器
    docker rmi 镜像ID 删除镜像
    docker run -i -t 镜像ID /bin/bash 开启容器并创建伪终端(退出容器,后台不运行)
    docker exec -i -t 容器ID /bin/bash 创建伪终端(前提是用 docker run -i -t -d开启的容器,退出容器,后台运行)
    apt-get update 更新
    apt-get install apache2 安装Apache2
    apt-get install php7.2 安装php7.2
    apt-get install libapache2-mod-php7.2 关联Apache和php
    service apache2 start 启动服务
    service apache2 status 查看服务状态
    exit 退出容器
    docker stop 容器ID 停止运行容器(开启后台运行的情况下)
    docker commit -a "kill" -m "my apache" 容器ID apache/php7.2:v1.0 打包成新镜像
    docker run -i -t -p 90:80 镜像ID /bin/bash 映射端口并开启容器进行交互
    接下来开启服务
    ​

 

相关内容

    暂无相关文章