第一课 Docker践行DevOps理念-导学和安装
第一课 Docker践行DevOps理念-导学和安装
tags:
- Docker
- 慕课网
categories:
- Docker
- Devlop实践
- Docker安装
文章目录
- 第一课 Docker践行DevOps理念-导学和安装
- 第一节 Docker导学
- 1. 1 Docker简介
- 1.2 DevOps介绍
- 1.3 容器技术的发展史
- 1.4 容器介绍
- 第二节 虚拟机中创建Docker虚拟机
- 2.1 Vagrant安装
- 2.2 Vagrant基本使用
- 2.3 虚拟机安装分发
- 2.4 docker基本安装
- 第三节 windows上使用docker-machine创建docker虚拟机
- 3.1 Win安装配置docker-machine
- 3.2 使用docker-machine
- 第四节 Aws亚马逊云创建docker虚拟机
- 第五节 docker Playground 使用docker
第一节 Docker导学
1. 1 Docker简介
- docker是容器技术的典型代表(还有其他的容器技术)。下面图代表传统虚拟机和Docker容器技术的区别。
- 传统虚拟技术创建虚拟机,让不同的应用运行在不同的虚拟机上,实现应用的隔离。
- 容器技术同样也可以到应用的隔离,它比虚拟化技术更方便,更小巧,因为他不需要虚拟化这这一层Hypervisor(虚拟机),也不需要虚拟机的操作系统。他直接在我们本地的操作系统之上,就可以实现app的隔离。
- docker技术的落地场景如下:
如简化配置: 实现源代码、运行环境、配置可以打包到一个容器中,这个容器可以运行在不同的环境中。
1.2 DevOps介绍
- Devlops的具体流程
1.3 容器技术的发展史
- 刚开始时,大家都是部署到物理机上。但是物理服务器部署应用有很多缺点如:
- 部署非常慢
- 成本非常高
- 资源浪费
- 难于迁移和扩展
- 可能会被限定硬件厂商
- 传统虚拟化技术出现以后,部署应用就简单、方便、容易管理。优点如下
- 资源池使一 个物理机的资源分配到了 不同的虚拟机里
- 很容易扩展 加物理机器or加虚拟机
- 很容易云化 亚马逊AWS ,阿里云等
- 但是传统虚拟化技术也有一些缺点。
- 每一个虚拟机都是一个完整的操作系统 ,要给其分配资源,当虚拟机数量增多时,操作系统本身消耗的资源势必增多
- 容器技术出现的原因。
- 开发人员:技术选取可用性多 运维人员:环境安装非常麻烦
- 开发和运维之间没有有效的标准模式。开发的测试环境和运维的部署环境可能不一样。
- 容器技术可以解决开发和运维之间的矛盾。
1.4 容器介绍
- 容器实现对软件和其依赖的标准化打包、应用之间相互隔离、共享同一个OS Kernel可以运行在很多主流操作系统上
- 容器和传统虚拟机的区别
- 虚拟机加容器
- docker只是容器技术的一种实现。(例如:Rocket技术)
第二节 虚拟机中创建Docker虚拟机
2.1 Vagrant安装
- 首先安装VirtualBox
- 然后安装Vagrant
- vagrant --help 确定是否安装成功
2.2 Vagrant基本使用
- 创建并进入文件夹E:/vagrant_VM/centos7,然后执行
- 配置虚拟机创建的路径。设置环境变量:VAGRANT_HOME为:E:\vargant_home
- 基本命令
命令 | 作用 |
---|---|
vagrant box add | 添加box的操作 |
vagrant init | 初始化box的操作,会生成vagrant的配置文件Vagrantfile |
vagrant up | 启动本地环境 |
vagrant ssh | 通过ssh登录本地环境所在虚拟机 |
vagrant halt | 关闭本地环境 |
vagrant suspend | 暂停本地环境 |
vagrant resume | 恢复本地环境 |
vagrant reload | 修改了Vagrantfile后,使之生效。相当于先halt,再 up |
vagrant destroy | 彻底移除本地环境 |
vagrant box list | 显示当前已经添加的box列表 |
vagrant box remove | 删除相应的box |
vagrant package | 打包命令,可以把当前的运行的虚拟机环境进行打包 |
vagrant plugin | 用于安装卸载插件 |
vagrant status | 获取当前虚拟机的状态 |
vagrant global-status | 显示当前用户Vagrant的所有环境状态 |
- Vagrant开源社区提供了许多已经打包好的操作系统,我们称之为box。你可以从box下载地址(下文列出),找到你想要的box,当然你也可以自己制作一个。
- 官方仓库:https://atlas.hashicorp.com/boxes/search
- 官方镜像:https://vagrantcloud.com/boxes/search
- 第三方仓库:http://www.vagrantbox.es/
- Vagrant提供在线安装服务,非常方便,但由于伟大的GFW,我们需要先FQ把box下载到本地,然后导入安装。
- vagrant box add是添加box的命令,{title}是以后创建虚拟机的别名,{url}是下载到本地box的路径,也可以是服务器端的URL。
vagrant box add {title} {url}
vagrant init {title}
vagrant up
# 1. 使用本地文件(从协议来说,和上面一样,相当于file:///协议的地址)
vagrant box add precises64 ./precise64.box
# 2.使用仓库名称
vagrant box add precises64 ubuntu/precise64
# 3. 这种方式,vagrant会自动在中央仓库查找镜像,并下载到本地镜像库中。(省略本地镜像名称,则直接用中央仓库中的镜像名作为本地镜像名,这样做的好处是可以跟仓库中的镜像对应。)
vagrant box add ubuntu/precise64
2.3 虚拟机安装分发
- 在线安装太慢啦。https://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
- 下载到E:/vagrant_VM/centos7。
# 建议采取离线安装,这样有利于放置虚拟机文件到指定路径
vagrant box add centos7 E:\vagrant_VM\centos7\CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
# 初始化镜像 初始化成功后,vagrant会在当前的初始化目录生成一个Vagrantfile配置文件,我们可以修改它,进行个性化定制。
vagrant init centos7
# 启动系统
vagrant up
# SSH连接安装的虚拟机
# 方法一 vagrant登录 退出exit 0
vagrant ssh
# 方法二 使用第三方工具,如secureCRT IP为Vagrantfile中指定的hostonly地址,用户名与密码默认都是vagrant
# 方法三 在宿主机的命令行,ssh到本地端口的方式登录。观察客户机的22端口映射到宿主机的是多少,一般是2200或者2222,用户名与密码默认都是vagrant
ssh -p 2222 127.0.0.1
- 打包分发:
- –output NAME:(可选)设置通过NAME来指定输出的文件名;
- –vagrantfile FILE:(可选)将Vagrantfile直接封进box中
vagrant halt # 在开发环境的目录,关闭centos7
vagrant status # 确认centos7关机
vagrant package centos7 --output centos7.box --vagrantfile Vagrantfile
注:如果网络模式中使用private_network的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:rm -f /etc/udev/rule.d/70-persistent-net.rules
4. 打包完成后会在当前目录生成一个centos7.box的文件,将这个文件分发给其他用户(开发者)。其他用户只要添加这个 box ,并用其初始化自己的开发目录,就能得到一个一模一样的开发环境了。
2.4 docker基本安装
- 社区版本:Community Edition (CE) 免费的
- 企业版本:Enterprise Edition (EE) 收费的
- 官网:https://docs.docker.com/engine/release-notes/
- 在官网右上角可以选择版本。选择好后网页布局也会改变,本次学习使用18.09版本的docker。
- Mac上安装docker。直接傻瓜安装就行。
- Window安装docker,也比较傻瓜。
- window 10以上才可以
- Hyper-V 支持
- centos上安装docker
- 先安装虚拟机如:Vagrant 或 Vmware
- 通过镜像下载速度快 这里用阿里镜像
- 安装依赖库
- 指定我们的安装版本(17. 09.1-ce), 防止和出现版本和课程不一致导致的bug情况。
# 配置阿里镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://eyzd1v97.mirror.aliyuncs.com"]
}
EOF
# 安装依赖库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置软件源信息
sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 更新yum包索引
yum makecache fast
# 查看可用版本
yum list docker-ce --showduplicates|sort -r
# 关闭测试版本list(只显示稳定版)
sudo yum-config-manager --disable docker-ce-edge
sudo yum-config-manager --disable docker-ce-test
# 指定版本安装
sudo yum install docker-ce-17.09.1.ce -ysudo systemctl daemon-reload
sudo systemctl restart docker
# 验证是否安装成功
sudo docker version
sudo docker run hello-world
- 可以把上述配置写到vagrantfile文件中,让以后创建的虚拟机直接安装docker
config.vm.provision "shell", inline: <<-SHELLsudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://eyzd1v97.mirror.aliyuncs.com"]}EOFsudo yum install -y yum-utils device-mapper-persistent-data lvm2sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.reposudo yum makecache fastsudo yum install docker-ce-17.09.1.ce -ysudo systemctl daemon-reloadsudo systemctl restart docker
SHELL
第三节 windows上使用docker-machine创建docker虚拟机
3.1 Win安装配置docker-machine
- 下载地址:http:/github.com/docker/machine
- 页面中的Release,下载win10的docker-machine-Windows-x86_64.exe
- 直接把docker-machine-Windows-x86_64.exe,复制到D:/docker-machine文件夹下。并改名为docker-machine.exe。
- 把文件夹D:/docker-machine,配置到环境变量path中。
- 进入power shell,输入docker-machine。有输出则表示安装配置成功
3.2 使用docker-machine
- 通过Virtualbox创建安装docker的虚拟机demo1:docker-machine create demo1
- 下载慢,可以下载完成镜像放到 C:\Users\11542.docker\machine\cache\boot2docker.iso
- docker-machine ls 查看创建的docker虚拟机
- docker-machine ssh demo1连接docker虚拟机
- docker-machine stop demo1停止docker虚拟机
- docker-machine rm demo1 删除docker虚拟机
第四节 Aws亚马逊云创建docker虚拟机
- 需要一张信用卡,用来注册账号
- 当然也可以选择国内的云服务商。
- 通过Security, ldentity & Compliance -> IAM -> Your Security Credentials ->Access keys创建认证信息。记下Security Key
- 创建文件夹~/. aws/credentials,根据官网配置信息
[default]
aws_access_key_id=AKID1234567890
aws_secret_access_key=MY-SECRET-KEY
- 通过本地的docker-machine,创建aws上的docker虚拟机。
# docker-machine名字aws-imooc
docker -machine create --driver amazonec2 --amazonec2- open-port 8000 --amazonec2-region us-west-1 aws-imooc
- 导入Aws的docker服务器到本地:eval $( docker-machine env aws - imooc)
- 创建完别忘记删除,因为会从你信用卡上扣费呀。
第五节 docker Playground 使用docker
- 访问网站:https://labs.play-with-docker.com/
- 它的登录名和密码在这个网站注册:https://www.docker.com
- 优点:不用安装直接使用
- 缺点: 共享资源,超时自动销毁
第一课 Docker践行DevOps理念-导学和安装相关推荐
- 计算机辅助技术学什么课,《CADCAM》课程导学计划
原标题:<CADCAM>课程导学计划 CADCAM课程导学计划 课程的性质.目的及任务 CAD_CAM在AutoCAD基础上,进一步掌握三维CAD的建方法,并以此为切入点,转而学习并掌握常 ...
- IT职场新人第一课:我的吐槽+我学到的
作为一个CSer,大学四年,混混沌沌地度过,专业知识掌握地一般,编程经历不多,对于面向对象的概念理解也不是很清晰,总之这四年现在回想起来,我还是错过了很多的机会,说到底,我还是缺乏一颗编程和钻研的精神 ...
- 新生导学课心得计算机,大一新生导学课论文_新生导学课心得_新生导学课感想文库...
大一建筑学新生怎样系统地学习建筑史? 谢邀,结合今晚心情,随便一说.首先,就学生所需,在现在考试框架下,建筑史那点知识,门槛甚低.随便医- 大一新生的工程管理专业导论论文,5000字,请教高人啊,急啊 ...
- Docker学习第一课 -- docker简介和和学习路线
Docker是一个用于开发,交付和运行应用程序的开放平台.Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件.借助Docker,您可以以与管理应用程序相同的方式来管理基础架构.通过利用 ...
- 第一课.Linux系统的介绍与ubuntu虚拟机安装
Linux系统介绍 Linux系统是一个类Unix系统(Unix系统的克隆),Unix是有版权限制的,Linux由Linus Torvalds编写,向POSIX兼容(POSIX为可移植操作系统接口标准 ...
- 活动单导学计算机课,活动单导学 自主式研学
[摘 要]学业水平测试重视基本知识.基本技能的考查,课堂复习效率至关重要.实施"活动单导学,自主式研学"是高中历史学科"小高考复习"课堂构建的基本模式,其课堂气 ...
- 电子计算机与多媒体导学案,5 电子计算机与多媒体板书设计及意图
人教版五年级语文下册 导学案 教案 铜仁市漾头中心小学 教师:姚登净 5 <电子计算机与多媒体>导学案 [学习目标] 1.我能学会生字,读写词语: 2.我能正确.流利地朗读课文. 3.我能 ...
- CloudNative时代践行DevOps躲坑指南
戳蓝字"CSDN云计算"关注我们哦! 2015年,谷歌成立了原生云计算基金会,标志着CloudNative时代的来临.它以容器化封装.自动化管理.面向微服务等特点,向人们展示了应用 ...
- python自动翻译导学案_变量python学案
●掌握常用的关系和逻辑运算符 ●掌握 Python 中的变量及其赋值 ●数字化学习与...●学生任务二: 阅读学案,计算一下表达式的值,把结果填在学习网站上. 练习算术...... 初中八年级信息技术 ...
最新文章
- 独家 | 熵–数据科学初学者必知的关键概念(附链接)
- 三维渲染引擎设计与实践(四)
- mysql设置参数不生效_关于mysql的wait_timeout参数 设置不生效的问题【转】
- 怎样为ubuntu eclipse 添加 GBK字符集
- oracle数据库行争用,Oracle技术之数据库高回滚争用的问题
- java 考试复习整理——JAVA类和类成员的修饰符
- nodejs readfilesync 路径_Linux 磁盘多路径聚合multipath
- Docker基本概念与实践(四)-部署简单web项目(tomcat+war+mysql)
- Ubuntu安装配置sougou输入法
- Android手机投屏利器米卓同屏助手
- Sklearn 卡方检验
- LoadRunner11代理在Win10操作系统启动不起来,或者报错:该内存不能为written
- vsftp日志文件汉字_为何手机存储空间还没用就快满了?删掉这些隐藏冗余文件满血复活...
- 万维网联盟:已完成对HTML5的规范开发
- lol服务器维护8月7,LOL8月7日维护到几点 具体更新了什么
- 百度地图瓦片层级范围对照表
- http-invoker插件原理解析
- 学生护眼灯色温多少合适?推荐色温在4000K的暖光护眼台灯
- 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》影评4篇
- OpenGL绘制球体模拟自由落体运动(基于Qt)