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

Hello,各位小伙伴们周五晚上好~

话说今天小编经历了一轮残酷的技术考核

docker 搭建tcp 服务器 使用docker搭建apache环境_docker


被两位考官虐到怀疑人生…

docker 搭建tcp 服务器 使用docker搭建apache环境_php_02


吓得我赶紧写下了这篇文章压压惊。

docker 搭建tcp 服务器 使用docker搭建apache环境_docker_03


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


一、什么是docker?

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

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

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

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

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


二、搭建Apache服务器

我们的实验环境为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功能是否正常。

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_04

3、拉取Ubuntu镜像

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

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

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_05

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_06

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_07

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

4、创建虚拟环境

首先查看我们使用的容器的ID:

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_08

使用ID创建虚拟化环境:

docker run -it [image] /bin/bash

docker 搭建tcp 服务器 使用docker搭建apache环境_php_09

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

如果不使用-d参数,使用该指令后,会直接进入容器

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

5、进入容器

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_10

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

使用容器ID进入容器:

docker exec -it [CONTAINER ID] bash

docker 搭建tcp 服务器 使用docker搭建apache环境_docker_11

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服务)
  • service apache2 status(查看apache服务状态)

访问Centos的8080端口,通过地址转换到Ubuntu的80端口:

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_12

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_13

访问一下,测试php功能是否正常:

docker 搭建tcp 服务器 使用docker搭建apache环境_php_14

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

7、其他操作

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_15


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

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_16

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

stop 命令停止容器:

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_17

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

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_18

start 命令启动容器:

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_19

rm 删除容器:

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_20

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


三、搭建Nginx服务器

Ubuntu14.04.5+Nginx+php 环境

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

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_21

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

docker 搭建tcp 服务器 使用docker搭建apache环境_docker 搭建tcp 服务器_22


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安装成功:

docker 搭建tcp 服务器 使用docker搭建apache环境_php_23

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

docker 搭建tcp 服务器 使用docker搭建apache环境_docker_24

配置Nginx可以解析php文件:

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

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_25

重启Nginx服务:

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_26

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

docker 搭建tcp 服务器 使用docker搭建apache环境_php_27

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


四、生成镜像

当我们使用镜像生成容器后,对容器进行的操作并不会影响镜像。

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

以我们刚配置的Nginx环境为例:

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_28


stop掉容器:

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_29

容器生成镜像:

docker 搭建tcp 服务器 使用docker搭建apache环境_docker_30

参数说明:

docker 搭建tcp 服务器 使用docker搭建apache环境_Apache_31

查看镜像:

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_32

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

五、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


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

docker 搭建tcp 服务器 使用docker搭建apache环境_Nginx_33