1、docker技术概述
- docker描述:docker是一项虚拟化的容器技术(类似于虚拟机),docker技术给使用者提供一个平台,在该平台上可以利用提供的容器,对每一个应用程序进行单独的封装隔离,每一个应用程序都有属于自己的运行和使用的空间,它们之间是互不影响,互不干扰的。
分析:docker技术工具——>相当于鲸鱼货轮——>货轮上有很多的集装箱——>相当于docker提供的容器——>在容器中封装项目/应用程序以及所需要的环境(环境+应用程序)。
docker基于操作系统层面的一项虚拟化容器技术
- docker和虚拟机的异同点:
- 相同点:它们都是基于操作系统层面的虚拟化技术
- 不同点:虚拟机的使用,需要借助于第三方虚拟机工具,比如VM;虚拟机软件(VM)有了之后,才能在该平台上进行操作系统环境的搭建,每个操作系统所消耗的硬件资源是较大的,比如centos安装,默认需要20G内存;操作系统有了之后,才能进行环境的搭建,比如LAMP环境;最后才能进行应用程序的部署操作;整个过程稍显繁琐和笨重。
- 相对于docker,我们只需要进行安装,就可以借助于该平台提供的容器,直接封装应用程序和它所需要的环境。
- docker目标:简化项目的部署流程
- docker版本:
decker ce:社区版,免费使用
docker ee:企业版,收费的
2、docker环境的部署
- 更改云服务器操作系统
阿里云控制台:实现对自己云服务器进行配置操作
①停止正在运行的操作系统
- 更改实例密码:指的是更改当前云服务器操作系统账号的密码,比如云服务器是centos,账号:root
- finalshell工具:连接云服务器(操作系统)
3、docker的部署应用
- 验证:查看操作系统版本(可选可写)
cat /etc/redhat-release
- 为了避免安装出错,建议进行更新操作(可选可写)
yum -y update
reboot
- 安装docker
yum -y install docker
- 验证:查看docker版本
docker version
- 启动docker服务
systemctl start docker
- 添加docker开机自启动
systemctl enable docker
- docker搭建LAMP环境
①docker搭建LAMP环境两种方案:
第一种把apache,mysql,php单独做安装;
第二种:找到封装LAMP环境的镜像文件,把他下载,并运行在容器中,我们直接使用即可
②查找LAMP镜像文件
docker search -s 10 lamp #查找收藏量或下载量大于10的lamp镜像文件
③下载lamp镜像
docker pull lamp镜像文件名
例:docker pull docker.io/tutum/lamp
④验证:查看下载的镜像文件
docker images
⑤将下载好的lamp镜像文件,运行在docker容器
mkdir /mysql_data ——>自定义创建目录:映射容器中运行出来的lamp环境(把容器中部分环境数据放在该目录下)
docker run -d - -name=lamp(容器名字,自定义) -p 8080:80 -p 3306:3306 -v /mysql_data:/var/lib/mysql docker.io/tutum/lamp
⑥运行完毕后,当前容器中已经把lamp镜像文件包含的lamp环境,全部加载在容器中(相当于容器中的lamp环境已搞定)
⑦进入容器,进行安全设置
docker exec -it lamp(容器名字) /bin/bash
初始化mysql数据库密码:mysql_secure_installation
注意:第一次提示,不做输入,直接回车
接下来可以尝试进入apache服务器提供存放程序包的位置:
cd /var/www/html ——>前提:进入容器,因为lamp环境是在容器中加载的
⑧到此为止,docker以及容器中lamp环境部署的操作,已经完毕
⑨验证:因为lamp环境是能够搭建动态网站,提供WEB端应用程序部署和使用的平台,那我们可以尝试在docker容器的lamp环境下,部署一个WEB应用程序(网站)
操作:把程序包放入容器中:win系统——>云服务器centos系统——>docker容器
备注:因为传递程序包,所有就暂时退出容器:exit
第一步:程序包:win——>centos
可以借助于finalshell工具,直接把程序包拖拽/加载到centos(存放的位置自定义)
第二步:程序包:centos—–>docker容器
前提:更改程序包的权限:把所有人改为可读可写可执行:chmod 777 www
通过docker提供的cp(复制)命令,将程序包复制到lamp容器的/var/www/html目录中
docker cp /www lamp:/var/www/html
第三步:进入容器,查看复制的程序包
docker exec -it lamp /bin/bash
到此为止,docker容器中既有程序包,也有该程序所需的lamp环境,接下来就可以进行访问操作
⑩开放云服务器的访问端口:8080和80端口号给开放出来
端口开放完毕后,就可以配合公网进行访问:
项目访问地址:http://公网IP:8080/www/install.php