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
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
//如果不使用-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环境搭建步骤:
安装完成后,测试以下功能是否正常。
访问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!