前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】使用docker搭建Apache/Nginx服务器

【Linux】使用docker搭建Apache/Nginx服务器

作者头像
一名白帽的成长史
发布2019-10-08 15:32:49
1.8K0
发布2019-10-08 15:32:49
举报

Hello,各位小伙伴大家好~

考官虐我千万遍,我待考官如初恋。吓得我赶紧写下这篇文章压压惊。

今天我们一起来通过实验掌握docker的基本用法吧~

Part.1

什么是docker?

Docker概述

Docker是一个开源的容器平台,使用容器镜像,可以轻松的创建虚拟化环境。

Docker的容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。

Docker跟我们常用的VMware功能很像,都是通过镜像来创建虚拟化环境。

Docker和VMware各有优势,对于我们安全从业人员而言,相较于VMware,docker创建虚拟化环境的速度更快,在Linux命令行界面下操作更加简便,可轻松地将虚拟化环境打包成镜像,也可通过镜像批量化生成多个虚拟环境。

我们直接从下面两个实验,来掌握docker的使用方法吧~

Part.2

搭建Apache服务器

Apahce2

我们的实验环境为Centos7,使用Centos7搭建Ubuntu虚拟环境,在Ubuntu中安装Apache服务。

按以下实验步骤,一步一步敲下去吧~

1、Centos7 安装 docker

  • yum update #更新软件源
  • yum upgrade #更新软件
  • yum -y install docker-io #安装docker
  • service docker start #启动docker服务

2、测试docker功能

docker run hello-world

Docker自带一个hello-world环境,我们可以启动这个环境,测试docker功能是否正常。

3、拉取Ubuntu镜像

首先我们需要先下载一个Ubuntu镜像。

搜索Ubuntu,可以找到不同类型的镜像:

拉取18.04版本的Ubuntu镜像到本地:

通过docker images查看下载的镜像:

//可以看到镜像仅仅只要64.2MB,非常轻量化

4、创建虚拟环境

首先查看我们使用的镜像的ID:

根据镜像ID创建Ubuntu虚拟化环境:

docker run -it [image] /bin/bash

  • -i 以交互模式运行容器,通常与 -t 同时使用;
  • -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -d 后台运行容器,并返回容器ID;
  • -p 随机端口映射,容器内部端口随机映射到主机的高端口;

//如果不使用-d参数,会直接进入容器。

//Apache服务默认为80端口,使用-p参数将80端口映射到Centos的8080端口,我们访问Centos的8080端口就相当于访问虚拟机的80端口了。

5、进入容器

首先我们ps查看一下后台运行的容器:

//可以看到容器ID为b978ca5d49de,映射端口为8080:80

使用容器ID进入容器:

docker exec -it [CONTAINER ID] bash

//命令符显示已进入容器,权限为root

这样我们的虚拟机就搭建好啦,接下来在虚拟机中安装Apache~

6、Apache2+php7环境搭建步骤:

  • apt-get update (更新软件列表)
  • apt-get install apache2(安装apache2)
  • apt-get install php7.0(安装php7)
  • apt-get install libapache2-mod-php(将php与apache关联)
  • service apache2 start(启动apache2服务)

安装完成后,测试以下功能是否正常。

访问Centos的8080端口,通过地址转换到Ubuntu的80端口,打开首页,Apache服务正常:

在/var/www/html/ 目录创建test.php文件,文件内容如下:

访问该文件,测试php功能正常:

这样我们就通过docker搭建了一个简单的Apache环境了~

7、其他操作

exit命令返回Centos,虚拟机依然在后台运行:

docker ps 查看后台运行的虚拟机:

//通过前面的exec命令,可再次进入容器

stop 命令停止容器:

docker ps -a 命令可以查看所有容器:

start 命令启动容器:

rm 删除容器:

//注意:删除一个容器,需要先stop这个容器

Part.3

搭建Nginx服务器

Nginx

Ubuntu14.04.5+Nginx+php 环境

步骤与搭建Apache环境类似,这里就不再详细描述了,配置如下:

docker pull ubuntu:14.04.5(下载14.04.5版本ubuntu镜像)

docker run -d -it -p 本机端口:80 ubuntu:14.04.5 (启动镜像)

apt-get update (更新源)

apt-get install nginx (安装nginx)

service nginx start (启动nginx服务)

apt-get install php5-fpm (安装php5-fpm)

service php5-fpm start(启动php服务)

访问Centos 8082端口,Nginx安装成功:

在根目录/usr/share/nginx/html/ 中创建test.php 文件:

刚装好的Nginx是不可以解析php文件的,需要修改default文件。

修改/etc/nginx/sites-available/default 文件:

重启Nginx服务:

访问test.php,php功能正常安装:

这样我们就完成了Nginx环境的简单搭建~

Part.4

生成镜像

生成镜像

四、生成镜像

当我们使用镜像生成容器后,对容器进行的操作并不会影响镜像,因此我们可以随时用一个镜像生成多个“干净”的虚拟容器。

如果需要保存容器的配置,需要让容器反向生成镜像。(先stop掉,再封装)

以我们刚配置的Nginx环境为例,查看后台容器:

先stop掉容器:

通过容器生成镜像:

参数说明:

查看生成的镜像:

使用这个镜像,我们就可以直接生成多个Nginx环境了~

Part.5

Docker配置汇总

配置汇总

0、启动docker  service docker start

1、下载镜像:  docker pull ubuntu:18.04

2、查看下载的镜像:docker images

3、查找镜像:    docker search ubuntu

4、构建容器:   

docker run -it -d -p port:port [image] /bin/nash

5、启动容器:    docker start [容器id]

6、停止容器:    docker stop [容器id]

7、删除容器:    docker rm [容器id]

8、查看运行容器:  docker ps -a

9、进入容器:docker exec -it 775c7c9ee1e1 bash

Part.6

结语

好啦,这就是今天的全部内容了,大家都明白了吗?

Peace!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一名白帽的成长史 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档