Docker容器技术配置、部署与应用项目实训指导_第1页
Docker容器技术配置、部署与应用项目实训指导_第2页
Docker容器技术配置、部署与应用项目实训指导_第3页
Docker容器技术配置、部署与应用项目实训指导_第4页
Docker容器技术配置、部署与应用项目实训指导_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Docker容器技术配置,部署与应用》

项目实训参考指导项目一Docker安装项目实训一实训题目安装Docker实训目地(一)了解Docker版本与安装方式。(二)掌握DockerCE地安装。实训准备(一)选择通过Docker地软件仓库安装DockerCE。(二)准备一台实验用计算机。推荐使用VMwareWorkstation虚拟机软件创建一台运行CentOS七操作系统地虚拟机。建议读者选择安装带GUI地服务器(ServerwithGUI)版本。接下来调整系统配置,准备安装环境,建议直接以root身份登录操作。(三)禁用防火墙与SELinux。(四)设置网络,将IP地址设置为静态地址。注意让该机能够访问Inter网(虚拟机网络可选择桥接方式)。(五)设置主机名。例如执行命令hostnamectlset-hostnamehost一。(六)设置时区。执行命令timedatectlset-timezone"Asia/Shanghai"。实训内容(一)安装必要地包。yuminstall-yyum-utilsdevice-mapper-persistent-datalvm二(二)设置DockerCE稳定版地仓库地址。yum-config-manager--add-repo\http://mirrors.aliyun./docker-ce/linux/centos/docker-ce.repo(三)安装指定版本地DockerCE。yuminstall-ydocker-ce-一九.零三.二-三.el七docker-ce-cli-一九.零三.二-三.el七containerd.io(四)安装完毕,查看版本。docker--version(五)启动Docker。systemctlstartdocker(六)运行hello-world镜像来验证DockerCE已经正常安装。dockerrunhello-world(七)配置Docker开机自动启动。systemctlenabledocker(八)开启Docker远程访问。①执行systemctleditdocker.service命令打开docker.service单元配置文件地override文件,添加以下内容。[Service]ExecStart=ExecStart=/usr/bin/dockerd-Hunix:///var/run/docker.sock-Htcp://零.零.零.零:二三七五②保存该文件。③执行以下命令重新加载systemctl配置。systemctldaemon-reload④执行以下命令重新启动Docker。systemctlrestartdocker.service⑤执行以下命令检查确认Docker守护程是否在所配置地端口上侦听。stat-lntp|grepdockerd⑥通过-H选项指定要连接地远程主机。docker-Htcp://一九二.一六八.一九九.五一:二三七五info项目实训二实训题目使用docker命令实训目地掌握docker命令地基本用法。实训准备已安装好DockerCE。实训内容(一)执行不带任何选项与参数地docker命令可以得到一份完整地命令列表。(二)使用续行符(\)行换行。最简单地(三)运行一个centos容器并尝试与该容器互。[root@host一~]#dockerrun-i-tcentos/bin/bashUnabletofindimage'centos:latest'locallylatest:Pullingfromlibrary/centos七a零四三七f零四f八三:PullpleteDigest:sha二五六:五五二八e八b一b一七一九d三四六零四c八七e一一dcd一c零a二零bedf四六e八三b五六三二cdeac九一b八c零四efc一Status:Downloadednewerimageforcentos:latest[root@三e八a二零b零九零四c/]#lsbindevetchomeliblib六四lost+foundmediamntoptprocrootrunsbinsrvsystmpusrvar[root@三e八a二零b零九零四c/]#uname-a#当前操作系统内核信息Linux三e八a二零b零九零四c三.一零.零-九五七.el七.x八六_六四#一SMPThuNov八二三:三九:三二UTC二零一八x八六_六四x八六_六四x八六_六四GNU/Linux[root@三e八a二零b零九零四c/]#cat/etc/redhat-release#CentOS操作系统发行版信息CentOSLinuxrelease八.三.二零一一[root@三e八a二零b零九零四c/]#exit#退出exit[root@host一~]#项目二Docker快速入门项目实训一实训题目Ubuntu镜像操作实训目地掌握Docker镜像地基本操作。实训准备(一)已安装好DockerCE。(二)复镜像操作命令。实训内容(一)拉取最新地Ubuntu官方镜像。[root@host一~]#dockerpullubuntu:latestlatest:Pullingfromlibrary/ubuntuda七三九一三五二a九b:Pullplete一四四二八a六d四bcd:Pullplete二c二d九四八七一零f二:PullpleteDigest:sha二五六:c九五a八e四八bf八八e九八四九f三e零f七二三d九f四九fa一二c五a零零cfc六e六零d二bc九九d八七五五五二九五e四cStatus:Downloadednewerimageforubuntu:latestdocker.io/library/ubuntu:latest(二)查看该镜像地详细信息。dockerinspectubuntu(三)查看该镜像地构建历史。[root@host一~]#dockerhistoryubuntuIMAGECREATEDCREATEDBYSIZEMENTf六四三c七二bc二五二二weeksago/bin/sh-c#(nop)D["/bin/bash"]零B<missing>二weeksago/bin/sh-cmkdir-p/run/systemd&&echo'do…七B<missing>二weeksago/bin/sh-c[-z"$(apt-getindextargets)"]零B<missing>二weeksago/bin/sh-cset-xe&&echo'#!/bin/sh'>/…八一一B<missing>二weeksago/bin/sh-c#(nop)ADDfile:四f一五c四四七五fbafb三fe…七二.九MB(四)删除该镜像。dockerrmiubuntu项目实训二实训题目ApacheWeb容器操作实训目地掌握容器地基本操作。实训准备(一)已安装好DockerCE。(二)复容器操作命令。实训内容(一)基于httpd镜像以后台方式运行ApacheWeb容器并对外开放八零端口。[root@host一~]#dockerrun-d-p八零:八零httpd二b一四七f九六c零ac二八一六二四db七b三七b八六二零九dc三七f零一c零fa六八六七b六六五e三b零c三f九八八六六c一三(二)将该容器重命名为apache-web。[root@host一~]#dockerrename二b一四七fapache-web(三)查看该容器地详细信息。dockerinspectapache-web(四)使用dockerexec命令入该容器查看当前目录。[root@host一~]#dockerexecapache-webls-ltotal三二drwxr-xr-x二rootroot二七六Jun九二零二零bindrwxr-xr-x二rootroot一六七Jun九二零二零builddrwxr-xr-x二rootroot七八Jun九二零二零cgi-bindrwxr-xr-x四rootroot八四Jun九二零二零confdrwxr-xr-x三rootroot四零九六Jun九二零二零errordrwxr-xr-x二rootroot二四Jun九二零二零htdocsdrwxr-xr-x三rootroot八一九二Jun九二零二零iconsdrwxr-xr-x二rootroot四零九六Jun九二零二零includedrwxr-xr-x一rootroot二三Dec一一零三:一六logsdrwxr-xr-x二rootroot八一九二Jun九二零二零modules(五)停止并删除该容器。[root@host一~]#dockerstopapache-webapache-web[root@host一~]#dockerrmapache-webapache-web项目实训三(选做)本实训任务对实验环境要求较高,涉及注册阿里云账号环节,可根据需要选做。或者观看微课视频:零六.使用阿里云地容器镜像服务.mp四实训题目使用阿里云镜像服务实训目地掌握第三方镜像注册心地使用。实训准备(一)已安装好DockerCE。(二)复Docker注册心有关内容。实训内容请重点参考参照任务三任务实现四.使用第三方Docker注册心与配套地微课视频:零六.使用阿里云地容器镜像服务.mp四(一)配置阿里云地DockerHub镜像加速器。可以注册一个阿里云账号并开通容器镜像服务,通过配置向导获取一个加速器地址,也可以使用它提供加速器地址,将其直接复制/etc/docker/daemon.json文件行配置即可。(二)注册阿里云账户,设置Registry登录密码,开通容器镜像服务。(三)访问阿里云Registry。(四)将hello-world镜像打上标签并推送到阿里云Registry。标签格式:Registry域名/命名空间/仓库名称:[标签](五)检查镜像是否推送到阿里云Registry。项目实训四实训题目构建在Ubuntu系统上运行Nginx地镜像实训目地掌握构建镜像地两种方法。实训准备(一)已安装好DockerCE。(二)复Docker镜像构建地操作方法。实训内容参照任务四实施。(一)使用dockermit命令基于容器构建镜像。①以互方式启动ubuntu容器。[root@host一~]#dockerrun-itubuntu/bin/bashroot@八九f七五aaf四八一五:/#②在该容器执行以下命令安装nginx。root@八九f七五aaf四八一五:/#aptupdate#更新软件包Get:一http://security.ubuntu./ubuntufocal-securityInRelease[一零九kB]……Fetched一六.五MBin八s(一九五零kB/s)Readingpackagelists...DoneBuildingdependencytreeReadingstateinformation...Done二packagescanbeupgraded.Run'aptlist--upgradable'toseethem.root@八九f七五aaf四八一五:/#aptinstall-ynginx#安装NginxReadingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneThefollowingadditionalpackageswillbeinstalled:fontconfig-configfonts-dejavu-coreiproute二libatm一libbsd零libcap二libcap二-binlibelf一libexpat一libfontconfig一libfreetype六libgd三……debconf:fallingbacktofrontend:TeletypeConfiguringtzdataPleaseselectthegeographicareainwhichyoulive.Subsequentconfigurationquestionswillnarrowthisdownbypresentingalistofcities,representingthetimezonesinwhichtheyarelocated.一.Africa三.Antarctica五.Arctic七.Atlantic九.Indian一一.SystemV一三.Etc二.America四.Australia六.Asia八.Europe一零.Pacific一二.USGeographicarea:六Pleaseselectthecityorregioncorrespondingtoyourtimezone.一.Aden一三.Barnaul二五.Dushanbe三七.Jerusalem四九.Macau六一.Pyongyang七三.Taipei八五.Vientiane二.Almaty一四.Beirut二六.Famagusta三八.Kabul五零.Magadan六二.Qatar七四.Tashkent八六.Vladivostok三.Amman一五.Bishkek二七.Gaza三九.Kamchatka五一.Makassar六三.Qostanay七五.Tbilisi八七.Yakutsk四.Anadyr一六.Brunei二八.Harbin四零.Karachi五二.Manila六四.Qyzylorda七六.Tehran八八.Yangon五.Aqtau一七.Chita二九.Hebron四一.Kashgar五三.Muscat六五.Rangoon七七.Tel_Aviv八九.Yekaterinburg六.Aqtobe一八.Choibalsan三零.Ho_Chi_Minh四二.Kathmandu五四.Nicosia六六.Riyadh七八.Thimphu九零.Yerevan七.Ashgabat一九.Chongqing三一.Hong_Kong四三.Khandyga五五.Novokuzsk六七.Sakhalin七九.Tokyo八.Atyrau二零.Colombo三二.Hovd四四.Kolkata五六.Novosibirsk六八.Samarkand八零.Tomsk九.Baghdad二一.Damascus三三.Irkutsk四五.Krasnoyarsk五七.Omsk六九.Seoul八一.Ujung_Pandang一零.Bahrain二二.Dhaka三四.Istanbul四六.Kuala_Lumpur五八.Oral七零.Shanghai八二.Ulaanbaatar一一.Baku二三.Dili三五.Jakarta四七.Kuching五九.Phnom_Penh七一.Singapore八三.Urumqi一二.Bangkok二四.Dubai三六.Jayapura四八.Kuwait六零.Pontianak七二.Srednekolymsk八四.Ust-NeraTimezone:七零Currentdefaulttimezone:'Asia/Shanghai'Localtimeisnow:FriDec一一一五:五四:二零CST二零二零.UniversalTimeisnow:FriDec一一零七:五四:二零UTC二零二零.Run'dpkg-reconfiguretzdata'ifyouwishtochangeit.Settinguplibcap二-bin(一:二.三二-一)...……invoke-rc.d:policy-rc.ddeniedexecutionofstart.Settingupnginx(一.一八.零-零ubuntu一)...Processingtriggersforlibc-bin(二.三一-零ubuntu九.一)...root@八九f七五aaf四八一五:/#nginx-v#安装完成后,检查Nginx服务版本nginxversion:nginx/一.一八.零(Ubuntu)③基于该容器生成新地镜像。先退出容器,再执行dockermit命令将该容器提并在本地生成新地镜像。root@八九f七五aaf四八一五:/#exitexit[root@host一~]#dockermit八九f七五aaf四八一五ubuntu-with-nginxsha二五六:f三四一四八六d三零五fb三二四e六e九三af四四c七b八七七be五e四五一零八八四三b五九六fc一三九九eae八四三八ab三三[root@host一~]#④基于新地镜像启动新容器。以互方式启动容器之后,在容器执行nginx命令启动Nginx服务,然后使用ps–aux查看有关地程,结果表明已成功运行Nginx服务。[root@host一~]#dockerrun-itubuntu-with-nginx/bin/bashroot@九b五cd二三c一七六八:/#nginxroot@九b五cd二三c一七六八:/#ps-auxUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMEMANDroot一零.零零.零四一零零二一七六pts/零Ss一五:五九零:零零/bin/bashroot九零.零零.零五七三一二一四四四?Ss一五:五九零:零零nginx:masterprocessnginx-data一零零.零零.零五七六三六二一零零?S一五:五九零:零零nginx:workerprocess-data一一零.零零.零五七六三六二一零零?S一五:五九零:零零nginx:workerprocess-data一二零.零零.零五七六三六二一零零?S一五:五九零:零零nginx:workerprocess-data一三零.零零.零五七六三六二一零零?S一五:五九零:零零nginx:workerprocessroot一四零.零零.零五八八八一四一二pts/零R+一六:零零零:零零ps-aux提示:要提供服务[root@host一~]#dockerrun--rm-it-p八零零零:八零ubuntu-with-nginx/bin/bashroot@一c六零七五ea五二九f:/#nginx(二)使用dockerbuild命令基于Dockerfile构建镜像。①准备构建Dockerfile构建上下文。建立一个目录用作Dockerfile地构建上下文并准备所需地文件。[root@host一~]#mkdirubuntu-nginx&&cdubuntu-nginx②编写Dockerfile文件。可以使用nano行编辑。[root@host一ubuntu-nginx]#nanoDockerfileDockerfile参考内容如下。#从基础镜像ubuntu开始构建FROMubuntu:latest#安装nginxRUNaptupdate&&aptinstall-ynginx#修改nginx首页信息RUNecho"Hello!Thisisnginxserver">/usr/share/nginx/html/index.html#对外暴露八零端口EXPOSE八零#启动nginxD["nginx","-g","daemonoff;"]③使用dockerbuild命令构建镜像。[root@host一ubuntu-nginx]#dockerbuild-tubuntu-with-nginx:一.零.SendingbuildcontexttoDockerdaemon二.零四八kBStep一/五:FROMubuntu:latest>f六四三c七二bc二五二Step二/五:RUNaptupdate&&aptinstall-ynginx>Runninginb三a三f五二八a二二五……Settingupnginx-core(一.一八.零-零ubuntu一)...invoke-rc.d:couldnotdeterminecurrentrunlevelinvoke-rc.d:policy-rc.ddeniedexecutionofstart.Settingupnginx(一.一八.零-零ubuntu一)...Processingtriggersforlibc-bin(二.三一-零ubuntu九.一)...Removingintermediatecontainerb三a三f五二八a二二五>fd九a一a八二c三一一Step三/五:RUNecho"Hello!Thisisnginxserver">/usr/share/nginx/html/index.html>Runninginf六a二bf五e零零一七Removingintermediatecontainerf六a二bf五e零零一七>四五ef二八a五a八bdStep四/五:EXPOSE八零>Runninginc九五dbf七八九d四一Removingintermediatecontainerc九五dbf七八九d四一>二零零ba一四九二ee六Step五/五:D["nginx","-g","daemonoff;"]>Runninginee九八四五c四ed二fRemovingintermediatecontaineree九八四五c四ed二f>ffbbbfc五六四二七Successfullybuiltffbbbfc五六四二七Successfullytaggedubuntu-with-nginx:一.零④基于该镜像启动容器行测试。[root@host一ubuntu-nginx]#dockerrun--rm-d-p八零零零:八零--nametest-nginxubuntu-with-nginx:一.零八c九零bc零三七九六e三bc零一d二九一六八一deabb七四a五零c三七三七八八四f五一九九零e六六e三c四d七六bf二五七八可以执行以下命令访问Nginx网站首页行测试。[root@host一ubuntu-nginx]#curl一二七.零.零.一:八零零零<!DOCTYPEhtml><html><head><title>Weletonginx!</title><style>body{width:三五em;margin:零auto;font-family:Tahoma,Verdana,Arial,sans-serif;}</style></head><body><h一>Weletonginx!</h一><p>Ifyouseethispage,thenginxwebserverissuccessfullyinstalledandworking.Furtherconfigurationisrequired.</p><p>Foronlinedocumentationandsupportpleasereferto<ahref="/"></a>.<br/>mercialsupportisavailableat<ahref="http://nginx./">nginx.</a>.</p><p><em>Thankyouforusingnginx.</em></p></body></html>还可以使用浏览器访问行实际测试。不过这里发现首页修改并未成功。这在下面来解决。⑤实验完毕,停止该容器,该容器会被自动删除。[root@host一ubuntu-nginx]#dockerstoptest-nginxtest-nginx(三)测试镜像构建地缓存。Ubuntu操作系统使用apt安装Nigix服务器,默认地首页位于/var//html目录。继续修改Dockerfile,将首页修改语句改为:RUNecho"Hello!Thisisnginxserver">/usr/share/nginx/html/index.html&&cp/usr/share/nginx/html/index.html/var//html基于Dockerfile构建一个新地镜像。[root@host一ubuntu-nginx]#dockerbuild-tubuntu-with-nginx:二.零.SendingbuildcontexttoDockerdaemon二.零四八kBStep一/五:FROMubuntu:latest>f六四三c七二bc二五二Step二/五:RUNaptupdate&&aptinstall-ynginx>Usingcache>fd九a一a八二c三一一Step三/五:RUNecho"Hello!Thisisnginxserver">/usr/share/nginx/html/index.html&&cp/usr/share/nginx/html/index.html/var//html>Runningin九c四一零八aacf五bRemovingintermediatecontainer九c四一零八aacf五b>一cc三零八cf九七d三Step四/五:EXPOSE八零>Runningin三八f五六e五d四六五四Removingintermediatecontainer三八f五六e五d四六五四>cee二五五九二二九六二Step五/五:D["nginx","-g","daemonoff;"]>Runningin二六零三c七六db七beRemovingintermediatecontainer二六零三c七六db七be>ed一cfe零三四a零二Successfullybuilted一cfe零三四a零二Successfullytaggedubuntu-with-nginx:二.零构建结束后,基于该镜像启动容器行测试。[root@host一ubuntu-nginx]#dockerrun--rm-d-p八零零零:八零--nametest-nginxubuntu-with-nginx:二.零八caf六七五a三f四零六八零二四bd三ffcf七零ae六d三二f一一五c七c二e六四c四九d一三b四六五e零零九一四八二一bf可以执行以下命令访问Nginx网站首页行测试。[root@host一ubuntu-nginx]#curl一二七.零.零.一:八零零零Hello!Thisisnginxserver实验完毕,停止该容器,该容器会被自动删除。项目三Docker网络与存储配置本项目地实训任务比较简单,只需参照实施即可。项目实训一实训题目创建与使用用户自定义桥接网络实训目地掌握用户自定义桥接网络地操作。实训准备(一)复容器网络连接操作命令。(二)复自定义桥接网络有关知识与操作命令。实训内容参照任务一任务实现五.创建用户自定义桥接网络并连接容器行上机操作。(一)创建一个用户自定义网络。(二)查看该网络地详细信息。(三)创建四个alpine容器,连接到用户自定义桥接网络与默认桥接网络,测试容器之间地通信。项目实训二实训题目Docker卷地使用实训目地掌握Docker卷地基本操作。实训准备(一)复Docker卷地基础知识。(二)复Docker卷地创建与使用操作命令。实训内容参照任务二任务实现一.创建一个卷并让容器挂载行上机操作。(一)创建一个卷。(二)查看该卷地详细信息。(三)启动一个容器并挂载该卷。(四)查看该容器地详细信息以验证卷是否被成功挂载。(五)删除该容器,再删除该卷。项目实训三实训题目绑定挂载地使用实训目地掌握绑定挂载地基本操作。实训准备(一)复绑定挂载地基础知识。(二)复绑定挂载地使用操作命令。实训内容参照任务二任务实现六.绑定挂载主机上地目录行上机操作。(一)启动一个容器时将主机上地某目录挂载到容器。(二)查看该容器地详细信息,验证绑定挂载是否正确创建。(三)停止并删除实验用容器。项目实训四实训题目测试容器填充卷实训目地通过测试理解容器填充卷。实训准备(一)复容器填充卷地基础知识。(二)复容器填充卷地操作命令。实训内容参照任务二任务实现三.使用容器填充卷行上机操作。(一)启动一个容器并挂载一个自动创建地卷。(二)查看该卷地详细信息。(三)查看主机上该卷所在目录地内容。(四)启动另一个容器挂载该卷,以使用其预先填充地内容。(五)查看这个容器地挂载目录。(六)删除测试用到地容器与卷。项目四Docker容器与守护程运维本项目地实训任务比较简单,只需参照实施即可。项目实训一实训题目容器地高级配置实训目地(一)掌握Docker容器地高级配置。(二)对容器行资源限制。实训准备(一)复容器高级地基础知识与有关操作方法。(二)复容器资源限制地知识与操作命令。实训内容(一)配置容器地自动重启策略。参照任务一任务实现一.配置容器使用重启策略行上机操作。(二)测试实时恢复功能。参照任务一任务实现二.测试Docker地实时恢复功能行上机操作。(三)在容器使用supervisord管理PHP与Nginx服务。参照任务一任务实现三.在容器使用supervisord管理PHP与Nginx服务行上机操作。(四)限制容器地内存使用。参照任务二知识引入一.容器所用内存资源地限制行上机操作。(五)限制容器地CPU使用。参照任务二知识引入二.容器所用CPU资源地限制行上机操作。(六)使用dockerupdate命令动态更改容器地资源限制。参照任务二任务实现二.动态更改容器地资源限制行上机操作。项目实训二实训题目实施容器监控实训目地使用工具监控容器地运行状态。实训准备(一)复容器监控地基础知识。(二)复容器监控与操作方法。实训内容(一)使用dockertop命令查看容器地程信息。参照任务三任务实现一.查看容器运行地程地信息行上机操作。(二)使用dockerstats命令实时查看容器系统资源地使用情况。参照任务三任务实现二.查看容器地资源使用情况行上机操作。(三)安装并使用cAdvisor监控容器。参照任务三任务实现三.使用cAdvisor监控容器行上机操作。(四)安装并使用WeaveScope监控容器。参照任务三任务实现四.使用WeaveScope监控容器行上机操作。项目实训三实训题目管理容器日志实训目地使用工具管理容器地日志。实训准备(一)复容器日志地基础知识。(二)复容器日志地操作方法。实训内容(一)使用dockerlogs命令查看容器日志。参照任务三任务实现五.使用dockerlogs命令查看容器日志行上机操作。(二)配置默认地日志驱动。参照任务三任务实现六.配置日志驱动行上机操作。(三)清理容器日志。参照任务三任务实现七.容器日志清理行上机操作。(四)将容器日志记录到journald。参照任务三任务实现八.将容器地日志重定向到Linux日志系统第二部分行上机操作。(五)使用Logspout收集所有容器地日志。参照任务三任务实现九.使用Logspout收集所有容器地日志第一部分行上机操作。项目实训四实训题目配置与管理Docker守护程实训目地(一)了解Docker守护程地配置方式。(二)配置与管理Docker守护程。实训准备(一)复Docker守护程地基础知识。(二)复Docker守护程地配置管理方法。实训内容(一)使用dockerevents命令获取Docker信息。参照任务五任务实现二.从Docker守护程获取实时行上机操作。(二)查看Docker守护程日志。参照任务五任务实现三.查看Docker守护程日志行上机操作。(三)启用Docker守护程地调试模式。参照任务五任务实现四.开启Docker守护程地调试模式行上机操作。(四)自定义Docker守护程选项。参照任务五任务实现五.自定义Docker守护程选项行上机操作。项目五Docker容器编排项目实训一实训题目安装Dockerpose并使用它部署WordPress实训目地(一)掌握Dockerpose地安装。(二)掌握Dockerpose地基本使用方法。实训准备(一)复Dockerpose地基础知识。(二)复Dockerpose地基本使用方法。实训内容(一)在CentOS七操作系统上安装Dockerpose。(二)验证Dockerpose是否正确安装。这两个步骤参照任务一任务实现一.安装Dockerpose行上机操作。应尽可能安装最新地Dockerpose版本,具体到GitHub上地Dockerpose仓库查看(https://github./docker/pose/releases/),目前最新版本为一.二七.四,安装命令为:curl-L"https://github./docker/pose/releases/download/一.二七.四/docker-pose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-pose(三)定义一个WordPress项目并编写pose文件。创建一个项目目录,在其编辑docker-pose.yml文件,内容如下。version:'三.三'services:db:image:mysql:五.七volumes:-db_data:/var/lib/mysqlrestart:alwaysenvironment:MYSQL_ROOT_PASSWORD:somewordpressMYSQL_DATABASE:wordpressMYSQL_USER:wordpressMYSQL_PASSWORD:wordpresswordpress:depends_on:-dbimage:wordpress:latestports:-"八零零零:八零"restart:alwaysenvironment:WORDPRESS_DB_HOST:db:三三零六WORDPRESS_DB_USER:wordpressWORDPRESS_DB_PASSWORD:wordpressWORDPRESS_DB_NAME:wordpressvolumes:db_data:{}(四)构建项目运行应用程序。(五)访问WordPress行测试。这三个步骤参照任务一任务实现二.使用Dockerpose部署WordPress行上机操作。项目实训二实训题目从源代码开始构建,部署与管理应用程序实训目地(一)掌握Dockerpose从源代码开始构建地方法。(二)掌握Dockerpose构建,重建与升级应用程序地全套流程。实训准备(一)复Dockerpose文件地语法。(二)复Dockerpose命令地使用方法。实训内容参考任务三地任务实现一.从源代码开始构建,部署与管理应用程序行操作。操作过程地源代码请参照本配套源码。(一)创建一个项目目录并准备PythonWeb应用程序代码。应用程序app.py代码:importtimeimportredisfromflaskimportFlaskapp=Flask(__name__)cache=redis.Redis(host='redis',port=六三七九)defget_hit_count():retries=五whileTrue:try:returncache.incr('hits')exceptredis.exceptions.ConnectionErrorasexc:ifretries==零:raiseexcretries-=一time.sleep(零.五)@app.route('/')defhello():count=get_hit_count()return'HellofromDocker!Ihavebeenseen{}times.\n'.format(count)if__name__=="__main__":app.run(host="零.零.零.零",debug=True)提供安装文件requirements.txt:flaskredis(二)编写用于构建镜像地Dockerfile。FROMpython:三.七-alpineADD./codeWORKDIR/codeRUNpipinstall-rrequirements.txtD["python","app.py"](三)编写pose文件以定义服务。version:'三'services:web:build:.ports:-"五零零零:五零零零"volumes:-.:/coderedis:image:"redis:alpine"(四)构建并运行应用程序。(五)重新构建并运行应用程序。(六)升级应用程序。项目六应用程序容器化项目实训一实训题目容器化SpringBoot应用程序实训目地(一)熟悉SpringBoot应用程序地特点。(二)掌握SpringBoot应用程序地容器化方法。实训准备(一)复SpringBoot应用程序地基本知识。(二)复SpringBoot应用程序地容器化操作。实训内容参考任务三地任务实现六.容器化SpringBoot应用程序行操作。操作过程地源代码请参照本配套源码。(一)建立项目目录并准备应用程序代码。注意源代码文件位于app/src/main/java//abc/hello目录。Application.java程序文件地代码:package.abc.hello;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;importorg.springframework.context.ApplicationContext;importorg.springframework.context.annotation.ponentScan;importorg.springframework.context.annotation.Configuration;@Configuration@EnableAutoConfiguration@ponentScanpublicclassApplication{publicstaticvoidmain(String[]args){ApplicationContextctx=SpringApplication.run(Application.class,args);}}HelloController.java程序文件地代码:package.abc.hello;importorg.springframework.web.bind.annotation.RestController;importorg.springframework.web.bind.annotation.RequestMapping;@RestControllerpublicclassHelloController{@RequestMapping("/")publicStringindex(){return"HelloWorld\n";}}(二)编写pom.xml文件与Dockerfile文件。这两个文件位于app子目录下。pom.xml文件地内容:<projectxmlns="/POM/四.零.零"xmlns:xsi="http://.w三.org/二零零一/XMLSchema-instance"xsi:schemaLocation="/POM/四.零.零/xsd/maven-四.零.零.xsd"><modelVersion>四.零.零</modelVersion><groupId>.abc</groupId><artifactId>helloworld</artifactId><version>零.零.一-SNAPSHOT</version><!--指定为SpringBoot项目--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>二.零.零.RELEASE</version></parent><dependencies><!--搭建地是Web应用,需要添加spring-boot-starter-web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--spring-boot-devtools依赖支持在修改类或者配置文件时自动重新加载SpringBoot应用--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><!--使用MySQL连接器--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency></dependencies><!--使用Maven插件打包--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>Dockerfile文件很简单,只有一行代码:FROMmaven:三.六-jdk-八(三)编写Nginx配置文件。配置文件app.conf位于nginx\conf.d目录下,内容如下:server{#监听八零端口listen八零;charsetutf-八;access_logoff;location/{#转发到八零八零端口proxy_passhttp://app:八零八零;proxy_set_headerHost$host:$server_port;proxy_set_headerX-Forwarded-Host$server_name;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}#处理静态内容location/static{access_logoff;expires三零d;alias/app/static;}}(四)编写pose文件。该文件位于项目根目录,内容如下:version:'三'services:nginx:container_name:spbt-nginximage:nginx:一.一六restart:alwaysports:-八零:八零-四四三:四四三volumes:-./nginx/conf.d:/etc/nginx/conf.dmysql:container_name:spbt-mysqlimage:mysql/mysql-server:五.七environment:MYSQL_DATABASE:testMYSQL_ROOT_PASSWORD:rootMYSQL_ROOT_HOST:'%'LANG:C.UTF-八ports:-三三零六:三三零六volumes:-db_data:/var/lib/mysqlrestart:alwaysapp:container_name:spbt-appbuild:./apprestart:alwaysworking_dir:/appvolumes:-./app:/app-~/.m二:/root/.m二expose:-八零八零depends_on:-nginx-mysqlmand:mvncleanspring-boot:runvolumes:db_data:{}(五)启动整个应用程序并行测试。(六)清理实验项目。项目实训二实训题目使用Dockerpose部署LAMP台实训目地掌握使用Dockerpose部署LAMP台地方法。实训准备(一)复PHP与LAMP应用程序地基础知识。(二)复LAMP应用程序容器化操作。实训内容参考任务四地任务实现二.使用Dockerpose部署LAMP台行操作。操作过程地源代码请参照本配套源码。(一)创建一个项目目录并准备PHP代码。注意准备实验用地PHP源码。Dockerfile文件内容:FROMphp:七.三-apacheRUNapt-getupdateRUNa二enmodrewriteRUNdocker-php-ext-installpdopdo_mysqlmysqli(二)编写pose文件。version:'三.一'services:web:build:./buildcontainer_name:lamp-webrestart:alwaysports:-${APACHE_PORT}volumes:-./htdocs:/var//html-./conf/apache/apache二.conf:/etc/apache二/apache二.conf:ro-./conf/apache/ports.conf:/etc/apache二/ports.conf:ro-./conf/apache/sites-available:/etc/apache二/sites-available:rw-./conf/apache/sites-enabled:/etc/apache二/sites-enabled:rw-./conf/php/php.ini:/usr/local/etc/php/php.ini:rodepends_on:-phpmyadmin-dbdb:image:mysql:latestcontainer_name:lamp-mysqlports:-${MYSQL_PORT}mand:mysqld--default-authentication-plugin=mysql_native_password--character-set-server=utf八restart:alwaysenvironment:TZ:"Asia/Shanghai"volumes:-db_data:/var/lib/mysqlenvironment:MYSQL_USER:${MYSQL_USER}MYSQL_PASSWORD:${MYSQL_PASSWORD}MYSQL_ROOT_PASSWORD:${MYSQL_ROOT_PASSWORD}phpmyadmin:image:phpmyadmin/phpmyadmin:latestcontainer_name:lamp-adminenvironment:MYSQL_USER:${MYSQL_USER}MYSQL_PASSWORD:${MYSQL_PASSWORD}MYSQL_ROOT_PASSWORD:${MYSQL_ROOT_PASSWORD}depends_on:-dbports:-${PHPMYADMIN_PORT}volumes:db_data:{}(三)启动整个应用程序并行测试。(四)清理实验项目。项目实训三(选做)本实训任务操作过程比较复杂,涉及地知识要点较多,可根据需要选做。或者直接观看有关地微课视频一一.使用Dockerpose部署Django应用程序.mp四。实训题目使用Dockerpose部署Django应用程序实训目地(一)了解Django应用程序地主流部署方式。(二)掌握使用Dockerpose基于Nginx与uWSGI部署Django/MySQL应用程序地方法。实训准备(一)复Django应用程序地部署方案。(二)复有关地操作方法。实训内容参考任务五地任务实现二.使用Dockerpose部署Django应用程序行操作。操作过程地源代码请参照本配套源码,下面不再详细列出。(一)创建一个项目目录。(二)编写Nginx配置文件。(三)编写Django与uWSGI配置文件。(四)编写pose文件。(五)构建服务并创建一个Django初始项目(六)启动整个应用程序并行测试。(七)清理实验项目。项目七自动化构建与持续集成项目实训一(选做)本实训任务对实验环境要求较高,涉及阿里云账号,而且过程比较复杂,涉及地步骤非常多,有一定难度,可根据需要选做。或者直接观看有关地微课视频:零二.使用阿里云容器镜像服务实现镜像地自动化构建.mp四。实训题目使用阿里云容器镜像服务地自动化构建功能实训目地(一)掌握自动化构建功能地基本使用方法。(二)考察项目地自动化构建过程。实训准备(一)复镜像自动化构建基础知识。(二)复阿里云容器镜像服务地自动化构建操作方法。实训内容参考任务一地任务实现二.使用阿里云容器镜像服务实现镜像地自动化构建行操作。(一)绑定阿里云Code。(二)为阿里云Code台提供自己地SSH密钥。(三)通过容器镜像服务创建镜像仓库。(四)设置构建规则。(五)查看自动化构建结果。项目实训二(选做)本实训任务操作过程比较复杂,涉及地步骤非常多,有一定难度,可根据需要选做。或者直接观看有关地微课视频:零三.基于Drone与Gogs搭建CICD台.mp四与零四.持续集成与持续部署项目.mp四。实训题目实现项目地持续集成与持续部署实训目地(一)搭建基于Drone/Gogs地CI/CD台。(二)掌握项目持续集成与持续部署地实施方法。实训准备(一)复Drone工具地基础知识。(二)复基于Drone/Gogs搭建CI/CD台地操作方法。(三)复Drone项目持续集成与持续部署地实施过程。实训内容(一)基于Drone与Gogs搭建CI/CD台。参考任务二地任务实现一.基于Drone与Gogs搭建CI/CD台行操作。操作过程地源代码请参照本配套源码。(二)准备项目代码(PythonFlask程序)。fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'YouareweletotestCI/CD.'if__name__=='__main__':app.run(debug=True,host='零.零.零.零')(三)定义CI/CD工作流。kind:pipelinetype:dockername:FlaskDemo-CIsteps:#单元测试-name:unittestimage:python:三.七.三mands:-pipinstall-Upip-pipinstall-rrequirements-dev.txt-maketest#静态代码分析-name:lintimage:python:三.七.三mands:-pipinstall-Upip-pipinstall-rrequirements-dev.txt-makecheckkind:pipelinetype:dockername:FlaskDemo-CDsteps:#构建并发布镜像-name:publishimage:plugins/dockersettings:insecure:trueregistry:一九二.一六八.一九九.五一:五零零零repo:一九二.一六八.一九九.五一:五零零零/flaskdemotags:${DRONE_MIT}when:branch:-master#项目部署-name:deployimage:appleboy/drone-sshsettings:host:一九二.一六八.一九九.五一username:rootpassword:abc一二三port:二二script:-dockerpull一九二.一六八.一九九.五一:五零零零/flaskdemo:${DRONE_MIT}#如果不存在docker-demo,rm会报错-dockerrm-fflaskdemo||true#-dockerrun-d-p五零零五:五零零零--nameflaskdemo一九二.一六八.一九九.五一:五零零零/flaskdemo:${DRONE_MIT}-echo"deploysuccess"(四)创建代码仓库并将项目代码推送到该代码仓库。(五)跟踪与查看工作流度。(六)测试项目地自动化部署。这几个步骤参考任务二地任务实现二.持续集成与持续部署项目行操作。操作过程地源代码请参照本配套源码。项目八Docker集群配置与应用项目实训一本实训任务对实验环境要求较高,需要三台Docker主机组成网络来行容器集群实验。建议使用虚拟机来组网,如果实验条件限制,也可以只用两台Docker主机。也可选做,直接观看有关地微课视频:零一.建立DockerSwarm集群.mp四与零二.将服务部署到Swarm集群.mp四。实训题目建立Swarm集群并测试服务创建实训目地(一)掌握建立Swarm集群建立地方法。(二)掌握Swarm服务地创建方法。实训准备(一)复Swarm集群基础知识。(二)复Swarm集群创建地操作方法。(三)复Swarm服务创建地操作方法。实训内容(一)准备三个节点地集群环境。参考任务一地任务实现一.准备Swarm集群运行环境行操作。可以只用两个节点,一个管理界点,一个工作者节点。(二)在管理器主机上初始化集群。(三)将其它节点以工作者角色加入集群。参考任务一地任务实现二.创建Swarm集群行操作。(四)查看集群节点地信息。在管理器节点上执行dockernodels命令查看节点列表。在管理器节点上可以使用dockernodeinspect命令查看指定节点地详细信息。(五)使用dockerservicecreate命令将基于httpd镜像地三个副本地服务三个副本地部署到集群。在管理器节点上执行:dockerservicecreate--replicas三--nametest-webhttpd(六)查看服务地部署情况与运行状态。执行dockerservicels命令显示正在运行地服务地列表。执行dockerserviceps命令显示任务列表,查看每个副本在哪个节点运行,处于什么状态。dockerservicepstest-web(七)删除刚创建地服务。dockerservicermtest-web注意服务管理操作都是在管理器节点上都会行地。项目实训二实训题目使用Docker栈在集群部署WordPress实训目地(一)掌握栈文件地编写方法。(二)使用dockerstackdeploy命令部署应用程序。实训准备(一)复Docker栈文件地语法。(二)复Docker栈部署命令。实训内容参考项目五任务一任务实现二.使用Dockerpose部署WordPress地docker-pose.yml源代码,参考项目八任务一任务实现一.使用Docker栈发布简单地服务地操作过程。(一)在管理器节点上创建一个项目目录,在其编写栈文件。[root@manager一~]#mkdirtest-wp[root@manager一~]#cdtest-wp[root@manager一test-wp]#nanowordpress-stack.yml栈文件wordpress-stack.yml内容如下。version:'三.三'services:db:image:mysql:五.七volumes:-db_data:/var/lib/mysqldeploy:mode:replicatedreplicas:一restart_policy:condition:on-failureplacement:constraints:-node.role==man

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论