任务:利用docker搭建一个本地的cms
目的:熟悉docker的使用,学习基于容器的应用部署
引题
docker其实是一种虚拟化的技术,当前我们所了解的虚拟化可以分为主机虚拟化(熟知的vmware)和容器虚拟化(即docker),区别在于容器虚拟化的是操作系统而不是硬件,主机虚拟化是在物理机的基础上再搭建一个完整的主机系统。
用一句话来概括的话,主机级虚拟化就是通过各种各样的手段,把物理资源重新分配,然后抽象出一部分拿来做虚拟机的虚拟硬件,是对硬件的模拟;而容器虚拟化技术相当于把操作系统进行虚拟化,把物理的操作系统模拟为逻辑上的多个操作系统,不同的操作系统有自己的用户空间,实现了应用程序间的隔离。
两者的对比:
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
总结一下docker的优势:运行环境一致、更快的启动速度、隔离性、快速扩展、迁移方便、持续交付和部署、高内聚和低耦合。
docker基本概念
Image(镜像)——一个特殊的文件系统:
相当于是一个 root 文件系统,用于创建 Docker 容器的模板,比如 Ubuntu 系统。
Container(容器)——镜像运行时的实体:
容器是独立运行的一个或一组应用,是镜像运行时的实体,镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
Repository(仓库)——集中存放镜像文件的地方:
仓库可看成一个代码控制中心,用来保存镜像。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
展示一下我的镜像仓库:
实战
利用不同平台搭建blog
常用的命令:
sudo docker ps #查看正在运行的container |
1、安装docker
菜鸟教程提供了一键安装的命令可以直接使用:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun |
2、更新 apt 包索引
sudo apt-get update |
3、更新仓库源:
sudo add-apt-repository \ |
4、查看docker版本:
sudo docker -v |
5、测试docker是否已经安装成功可以运行:
sudo docker run hello-world |
6、下载是用于定义和运行多容器 Docker 应用程序的工具docker-compose
sudo apt-get install docker-compose |
至此,我们的环境已经搭建完毕,下面就开始搭建blog
我打算利用mysql+wordpress来搭建一个cms
环境:ubuntu16.04、mysql5.6、wordpress:latest
环境已经编号,下面来编写docker-compose.yml文件
version: '3' # docker-compose的版本 |
运行脚本
然后进入本地的80端口开始博客的配置
然后可以美化自己的本地博客,至此,利用docker搭建本地cms完成