【Linux】使用docker搭建Apache/Nginx服务器
Hello,各位小伙伴们周五晚上好~
话说今天小编经历了一轮残酷的技术考核
被两位考官虐到怀疑人生…
吓得我赶紧写下了这篇文章压压惊。
今天我们一起来通过实验掌握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功能是否正常。
3、拉取Ubuntu镜像
首先我们需要先下载一个Ubuntu镜像。
搜索Ubuntu镜像,可以找到不同类型的Ubuntu镜像:
拉取18.04版本的Ubuntu镜像到本机:
通过docker images查看下载的镜像:
//这里可以看到镜像仅仅只要64.2MB,非常轻量化
4、创建虚拟环境
首先查看我们使用的容器的ID:
使用ID创建虚拟化环境:
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
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端口:
在/var/www/html/ 目录下创建一个test.php,内容如下:
访问一下,测试php功能是否正常:
这样我们就通过docker搭建了一个简单的Apache环境了~
7、其他操作
exit命令返回Centos,虚拟机依然在后台运行:
docker ps 查看后台运行的虚拟机:
//通过前面的exec命令,可再次进入容器
stop 命令停止容器:
docker ps -a 命令可以查看所有容器:
start 命令启动容器:
rm 删除容器:
//注意:删除一个容器时,需要先stop掉这个容器
三、搭建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文件:
修改/etc/nginx/sites-available/defaule 文件:
重启Nginx服务:
访问test.php,php功能正常安装:
这样我们就完成了Nginx环境的简单搭建~
四、生成镜像
当我们使用镜像生成容器后,对容器进行的操作并不会影响镜像。
如果需要保存容器的配置,需要让容器反向生成镜像。(先stop掉,再封装)
以我们刚配置的Nginx环境为例:
stop掉容器:
容器生成镜像:
参数说明:
查看镜像:
使用这个镜像,我们就可以直接生成多个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
好啦,这就是今天的全部内容了,大家都明白了吗?