Linux操作系统学习笔记10【Linux下Docker虚拟化环境搭建安装Apache、LNMP】

    科技2024-04-16  97

    文章目录:

    一: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的发展与管理。

    一:Docker与虚拟化

    Linux上的虚拟化技术主要包括两类:

    一类是管理技术 例如KVM; 另一类是容器技术 例如Linux LXC,Docker是构建在LXC之上的VM解决方案

    1.虚拟化的优势

    1.降低能耗 2.节省空间 3.节约成本 4.最大利用率 5.提高稳定性 6.减少宕机事件 7.提高灵活性

    2.Docker的由来

    Hyper-V、KVM和Xen等虚拟机管理程序都基于虚拟化硬件仿真机制。这意味着对系统要求很高。

    然而,容器却使用共享的操作系统,这意味着在使用系统资源方面比虚拟机管理程序要高效得多。

     

    其实,容器是个旧概念,Docker建立在LXC的基础上。与任何容器技术一样,就该程序而言,它有自己的文件系统、存储系统、处理器和内存等部件。

    容器与虚拟机之间的区别主要在于,虚拟机管理程序对整个设备进行抽象处理,而容器只是对操作系统内核进行抽象处理。

    3.Docker的安装

    Docker的安装既简单又快,目前支持主流的Linux操作系统,包括Ubuntu、RHEL、CentOS、Fedora

    本节介绍在运行RHEL7.3宿主机中安装Docker

    3.1 检查内核

    必须十64位版本 uname -a

    3.2 检查Device Mapper  

    检查Device Mapper有两种命令: ls l /sys/class/misc/device-mapper grep device-mapper /proc/devices

    3.2.1 如果没有检测到Device Mapper,使用以下命令安装

    安装 yum install -y device-mapper 加载 modprobe dm_mod

    3.2.2 要确保电脑联网,取得root权限并在官网:https://www.redhut.com/zh完成账号注册,然后执行以下命令

    登录官网 subscription-manager register wget https://dl.fedoraprohect.org/pub/epel/epel-release-latest-7.noarch.rpm 下载资源包: yum install epel-release-latest-7.noarch.rpm 查看所有的yun资源库 yum repolist subscription-manager repos --enable=rhel-7-server-extras-rpms

    3.2.3 接下来开始安装Docker

    yum install -y docker

    3.2.4 检查完成后,使用下面命令启动Docker

    启动Docker守护进程 systemctl start docker 检查Docker状态 systemctl status docker

    3.2.5 安装好后,我们可以使用以下命令停止或设置Docker

    停止Docher进程 systemctl stop docker 设置开机启动Docker systemctl enable docker 检查Docker是否正确安装(必须先启动Docker) docker info

    4.Docker常用命令

    Docker常用命令总结

    二:Docker的管理

    Docker管理主要包括镜像、容器、仓库三部分,下面分别向读者介绍它们的概念、特点,以及如何创建、维护和管理。

    1.镜像

    镜像(image)是动态的容器的静态表示,包括容器所要运行的应用代码以及运行时的配置。

    Docker 镜像包括一个或者多个只读层,因此,镜像一旦被创建就再也不能被修改了。

    一个运行着的Docker 容器是一个镜像的实例。

    从同一个镜像中运行的容器包含有相同的应用代码和运行时依赖。

    但是不像镜像是静态的,每个运行着的容器都有一个可写层,它位于底下的若干只读层之上。

    2.容器

    Docker容器是一个开源的应用容器引擎,让开发者打包应用以及依赖包到一个可移植的容器中,然后发布到Linux系统中,也可以实现虚拟化。

    容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    1.启动一个Docker容器 2.使用容器 3.退出容器 4.Docker中容器的命名 5.Docker中容器的删除

    3.仓库

    仓库是集中存放镜像的地方,一个注册服务器上有很多仓库,一个仓库中有很多镜像

    简单地说:就是一个存储和共享镜像文件的地方

    Docker不仅提供了一个中央仓库,同时也允许使用registry搭建本地私有仓库

     

    使用私有仓库有许多优点:

    节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

    提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

    接下来介绍如何在本地搭建私有仓库

     1.环境准备 2.搭建私有仓库 3.测试

    三:Docker操作

    本节介绍常见的Docker操作,包括下载某Docker镜像、启动Docker中的程序,等等。

    1.在Docker里运行Apache程序

    1.1 准备工作

    (1)先使用如下命令搭建生产环境

    mkdir apache_ubuntu && cd apache_ubuntu touch Dockerfile run.sh mkdir sample

    执行效果如图14-22所示

    (2)编辑Dockerfile

    vi Dockerfile

    输入以下内容,如图14-23

    (3)在sample目录下,建立index.html文件

    <!DOCTYPE html> <html> <body> <p>Hello,Docker!</p> </body> </html> vi run.sh

    输入内容:

    #!/bin/bash exec apache2 -D FOREGROUND

    1.2 创建镜像

    以root权限输入以下命令,注意最后的" . "

    docker build -t apache:ubuntu .

    执行效果如图14-24

    使用以下命令查看镜像,如图14-25

    docker images

    2.下载LNMP镜像并启动

    2.1 搜索和下载LNMP镜像

    docker search lnmp docker pull docker.io/evagle/lnmp

    如图14-30所示,其他的镜像也可以下载

    2.2 查看镜像

    查看镜像的命令

    docker images

    命令执行效果如图14-31所示

    2.3 运行容器

    运行命令

    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,打开这个页面说明已经正常运行了!

     

    Processed: 0.016, SQL: 9