文章目录:
一:Docker与虚拟化
Linux上的虚拟化技术主要包括两类:
1.虚拟化的优势
2.Docker的由来
3.Docker的安装
3.1 检查内核
3.2 检查Device Mapper
3.2.1 如果没有检测到Device Mapper,使用以下命令安装
3.2.2 要确保电脑联网,取得root权限并在官网:https://www.redhut.com/zh完成账号注册,然后执行以下命令
3.2.3 接下来开始安装Docker
3.2.4 检查完成后,使用下面命令启动Docker
3.2.5 安装好后,我们可以使用以下命令停止或设置Docker
4.Docker常用命令
Docker常用命令总结
二:Docker的管理
1.镜像
2.容器
3.仓库
三:Docker操作
1.在Docker里运行Apache程序
1.1 准备工作
(1)先使用如下命令搭建生产环境
(2)编辑Dockerfile
(3)在sample目录下,建立index.html文件
1.2 创建镜像
2.下载LNMP镜像并启动
2.1 搜索和下载LNMP镜像
2.2 查看镜像
2.3 运行容器
Docker是一个开源的应用容器引擎,可以轻松的为任意应用创建一个轻量级的、可移植的、自给自足的容器, 然后发布到任何Linux 机器上。
Docker所建立的容器使用沙箱机制,几乎没有性能开销,很容易地在机器和数据中心中运行。
最重要的是Docker不依赖于任何语言、框架或系统,本章就来介绍Docker的发展与管理。
Hyper-V、KVM和Xen等虚拟机管理程序都基于虚拟化硬件仿真机制。这意味着对系统要求很高。
然而,容器却使用共享的操作系统,这意味着在使用系统资源方面比虚拟机管理程序要高效得多。
其实,容器是个旧概念,Docker建立在LXC的基础上。与任何容器技术一样,就该程序而言,它有自己的文件系统、存储系统、处理器和内存等部件。
容器与虚拟机之间的区别主要在于,虚拟机管理程序对整个设备进行抽象处理,而容器只是对操作系统内核进行抽象处理。
Docker的安装既简单又快,目前支持主流的Linux操作系统,包括Ubuntu、RHEL、CentOS、Fedora
本节介绍在运行RHEL7.3宿主机中安装Docker
Docker管理主要包括镜像、容器、仓库三部分,下面分别向读者介绍它们的概念、特点,以及如何创建、维护和管理。
镜像(image)是动态的容器的静态表示,包括容器所要运行的应用代码以及运行时的配置。
Docker 镜像包括一个或者多个只读层,因此,镜像一旦被创建就再也不能被修改了。
一个运行着的Docker 容器是一个镜像的实例。
从同一个镜像中运行的容器包含有相同的应用代码和运行时依赖。
但是不像镜像是静态的,每个运行着的容器都有一个可写层,它位于底下的若干只读层之上。
Docker容器是一个开源的应用容器引擎,让开发者打包应用以及依赖包到一个可移植的容器中,然后发布到Linux系统中,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。
1.启动一个Docker容器 2.使用容器 3.退出容器 4.Docker中容器的命名 5.Docker中容器的删除仓库是集中存放镜像的地方,一个注册服务器上有很多仓库,一个仓库中有很多镜像
简单地说:就是一个存储和共享镜像文件的地方
Docker不仅提供了一个中央仓库,同时也允许使用registry搭建本地私有仓库
使用私有仓库有许多优点:
节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;
提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。
接下来介绍如何在本地搭建私有仓库
1.环境准备 2.搭建私有仓库 3.测试
本节介绍常见的Docker操作,包括下载某Docker镜像、启动Docker中的程序,等等。
执行效果如图14-22所示
输入以下内容,如图14-23
输入内容:
#!/bin/bash exec apache2 -D FOREGROUND以root权限输入以下命令,注意最后的" . "
docker build -t apache:ubuntu .执行效果如图14-24
使用以下命令查看镜像,如图14-25
docker images如图14-30所示,其他的镜像也可以下载
查看镜像的命令
docker images命令执行效果如图14-31所示
运行命令
docker run -d -p 8080:80 -p 3306:3306 docker.io/evagle/lnmp运行成功后,使用curl命令测试:
curl http://127.0.0.1:8080可以看到html源代码,或者打开浏览器
输入网址:http://127.0.0.1:8080最终效果如图14-32所示。OK,打开这个页面说明已经正常运行了!