1、第,7,章,Docker,容器化技术,(课时数,:,8,课时,),云计算虚拟化技术与应用,主 要 内 容,1,Docker,概述,2,Docker,技术,3,Docker,的使用,4,Docker,的应用,一、,Docker,概述,(一),什么是Docker,(1),应用容器引擎:,Docker,是由,Docker Inc.,公司于,2013,年推出的构建在,LXC,(,Linux Container,,,Linux,容器)技术上的应用容器引擎,是一个基于,Go,语言实现的并遵从,Apache2.0,协议的开源项目。,(,2,),Build once,,,Run anywhere,:,Do
2、cker,重新定义了应用程序的开发、测试、交付和部署的过程,提出了,“,构建一次,到处运行(,Build once,,,Run anywhere,),”,的理念。,(,3,)众多大型企业的支持与使用:,Google,将其应用在,PaaS,,微软在,Azure,产品上给,Docker,提供支持。亚马逊也推出了,AWS EC2 Container,,来提供对,Docker,的支持。,一、,Docker,概述,(二),Docker与虚拟化,(1),虚拟化技术的发展阶段:,硬件级虚拟化,操作系统级虚拟化(容器化技术,:,Docker,)。,(,2,)操作系统级虚拟化技术的发展,:,2000,年:,Fr
3、eeeBSD Jail,;,2005,年:,OpenVZ;,2008,年:,LXC,发布,这是,Docker,最初使用的具体内核功能实现。,2013,年:,Docker,正式发布,(,3,),Linux,容器技术,:,LXC,(,Linux Container,,,Linux,容器)是一种内核虚拟化技术,提供了轻量级的虚拟化来隔离进程和资源,而不需要去虚拟整个操作系统,一、,Docker,概述,(二),Docker与虚拟化,(4),Docker,虚拟化技术:,Docker,是当前,Linux,容器技术比较流行的一种实现,它是通过命名空间,(Namespace),和资源配置项(,Cgroups,
4、等内核虚拟化技术来实现容器的资源隔离与安全保障。,二,、,Docker,技术,(二),Docker,引擎,Docker,引擎是一个客户,/,服务器应用程序,它是一个非常松耦合的架构。,Docker,引擎主要包含了以下几个组件:守护进程,(Docker Daemon),,,REST API,和命令行接口(,CLI,)。,二,、,Docker,技术,(二),Docker,的架构,Docker,的架构由客户端,(Client),、,Docker,主机(,Host,)和,Docker,镜像仓库注册服务器,(Registry),构成。,三,、,Docker,的,使用,(一),安装与卸载,Docker,
5、1),系统环境:,采用,Xenial 16.04(LTS),。,。,(,2,)更新系统,:,#sudo apt-get update,(,3,)安装推荐的拓展包:,#sudo apt-get install curl linux-image-extra-$(uname-r)linux-image-extra-virtual,三,、,Docker,的,使用,(一),安装与卸载,Docker,(,4,)设置镜像仓库,:,a),安装,apt-transport-https,允许,apt,通过,HTTPS,使用仓库,#sudo apt-get install apt-transpost-https
6、ca-certificates,b),增加,Docker,官方的,GPG Key,,并验证,#sudo curl,s yum.dockerproject.org/gpg|sudo apt-key add,#sudo apt-key fingerprint,58118E89F3A912897C070ADBF76221572C52609D,三,、,Docker,的,使用,(一),安装与卸载,Docker,(,4,)设置镜像仓库,:,c),设置仓库为稳定的发布版本,#sudo apt-add-repository,deb https:/apt.dockerproject.org/repo ubunt
7、u-xenial main,(,若找不到,add-apt-repository,,则运行以下命令安装它,:,#,sudo apt-get install software-properties-common),三,、,Docker,的,使用,(一),安装与卸载,Docker,(,4,),安装,Docker,:,a),更,新,apt,资源,#sudo apt-get update,b),检查一下本机是否安装了,docker-engine,#sudo apt-cache policy docker-engine,c),安装最新版本的,Docker,引擎,#sudo apt-cache instal
8、l docker-engine,三,、,Docker,的,使用,(一),安装与卸载,Docker,(,4,),安装,Docker,:,d),通过以下命令检查,Docker Service,是否运行,#service docker status,e),通过,Hello-world,程序验证,Docker,的正确安装,#docker run hello-world,f),通过,Docker-help,命令可以查看,Docker,相关的命令应用。,#docker-help,三,、,Docker,的,使用,(二)使用,Docker,命令帮助:,#docker image-help,a),搜索,Dock
9、er,镜像,#docker search ubuntu,b),获取,Docker,镜像,#docker pull ubuntu,c),查看,Docker,镜像,#docker images,三,、,Docker,的,使用,(二)使用,Docker,命令帮助:,#docker image-help,d),导出,Docker,镜像,#docker save ubuntu /opt/ubuntu.tar.gz,e),删除,Docker,镜像,#,docker rmi ubuntu,f),导入,Docker,镜像,#docker load create database book;,mysql sho
10、w databases;,四,、,Docker,的,应,用,(二)创建自定义的,MySQL,镜像,c),创建样本数据。,mysql use book;,mysql insert into student values(1,,,Joy,),,,(2,,,Tom,),,,(3,,,James,);,mysql select*from student;,d),停止容器,#docker stop c6742a2f18o4,e),提交容器中,MySQL,镜像到本地,#docker commit,m,“,Book Mysql demo,”,a,“,book2docker,”,c6742a2f18o4 bo
11、ok2docker/book-mysql-0.1,四,、,Docker,的,应,用,(二)创建自定义的,MySQL,镜像,f),推送,book MySQL-0.1,镜像到,Docker Hub,#docker push book2docker/book-mysql-0.1,g),登录,Docker Hub,可以查看到镜像,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,a),搜索安装有,PHP5,的,apache,镜像,#docker search apache-php5,b),选择下载最热门,nimmis/apache-php5,镜
12、像,#docker pull nimmis/apache-php5,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,c),在用户目录创建,book,文件夹,并编辑一个,index.php,文件显示上面建立的数据库中的数据,cat index.php,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,d),创建,Dockerfile,#cat,Dockerfile,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,e),在
13、Book,目录下编译,Dockerfile,文件,/book#docker build,t book2docker/book-apache-0.1.,f),查看镜像列表,#docker images,g),创建并运行该镜像文件的一个容器,#docker run,p 80:80,d book2docker/book-apache-0.1,h),重新启动前面停止的,MySQL,容器,#,docker start c6742a2f18a4,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,i),通过浏览器访问本机,index.php,路径,
14、得到数据库表,student,的遍历结果,四,、,Docker,的,应,用,(,三,),使用,Dockerfile,构建自定义的,Apache,镜像,k),在,Docker Hub,查看公有镜像,j),推送,book-apache,镜像到,Docker Hub,。,/book,#docker push book2docker/book-apache-0.1,四,、,Docker,的,应,用,(四),应用,Docker-Compose,同时启动,Apache,和,MySQL,容器,a),停止并删除正在运行的,apache,和,MySQL,容器,#docker stop f95638dd062b
15、c6742a2f18a4,#docker rm f95638dd062b c6742a2f18a4,b),安装,Docker-Compose,软件,#sudo apt-get install docker-compose,四,、,Docker,的,应,用,(四),应用,Docker-Compose,同时启动,Apache,和,MySQL,容器,c),创建一个,Docker-Compose.yml,文件,#cat docker-compse.yml,四,、,Docker,的,应,用,(四),应用,Docker-Compose,同时启动,Apache,和,MySQL,容器,d),利用,Docker
16、Compose,同时创建并运行,apache,和,MySQL,容器,#docker-composer up,d,e),创建样本数据,mysqlcreate database book;,mysql use book;,mysql insert into student values,(1,,,Joy,),,,(2,,,Tom,),,,(3,,,James,);,mysql select*from student,四,、,Docker,的,应,用,(四),应用,Docker-Compose,同时启动,Apache,和,MySQL,容器,f),利用浏览器打开,“,/index.php,”,页面查看并验证结果,本章结束,下次再见!,
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818