第一课 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简介

  1. docker是容器技术的典型代表(还有其他的容器技术)。下面图代表传统虚拟机和Docker容器技术的区别。

    • 传统虚拟技术创建虚拟机,让不同的应用运行在不同的虚拟机上,实现应用的隔离。
    • 容器技术同样也可以到应用的隔离,它比虚拟化技术更方便,更小巧,因为他不需要虚拟化这这一层Hypervisor(虚拟机),也不需要虚拟机的操作系统。他直接在我们本地的操作系统之上,就可以实现app的隔离。
  2. docker技术的落地场景如下:

    如简化配置: 实现源代码、运行环境、配置可以打包到一个容器中,这个容器可以运行在不同的环境中。

1.2 DevOps介绍

  1. Devlops的具体流程

1.3 容器技术的发展史

  1. 刚开始时,大家都是部署到物理机上。但是物理服务器部署应用有很多缺点如:

    • 部署非常慢
    • 成本非常高
    • 资源浪费
    • 难于迁移和扩展
    • 可能会被限定硬件厂商
  2. 传统虚拟化技术出现以后,部署应用就简单、方便、容易管理。优点如下
    • 资源池使一 个物理机的资源分配到了 不同的虚拟机里
    • 很容易扩展 加物理机器or加虚拟机
    • 很容易云化 亚马逊AWS ,阿里云等
  3. 但是传统虚拟化技术也有一些缺点。
    • 每一个虚拟机都是一个完整的操作系统 ,要给其分配资源,当虚拟机数量增多时,操作系统本身消耗的资源势必增多
  4. 容器技术出现的原因。
    • 开发人员:技术选取可用性多 运维人员:环境安装非常麻烦
    • 开发和运维之间没有有效的标准模式。开发的测试环境和运维的部署环境可能不一样。
  5. 容器技术可以解决开发和运维之间的矛盾。

1.4 容器介绍

  1. 容器实现对软件和其依赖的标准化打包、应用之间相互隔离、共享同一个OS Kernel可以运行在很多主流操作系统上
  2. 容器和传统虚拟机的区别
  3. 虚拟机加容器
  4. docker只是容器技术的一种实现。(例如:Rocket技术)

第二节 虚拟机中创建Docker虚拟机

2.1 Vagrant安装

  1. 首先安装VirtualBox
  2. 然后安装Vagrant
  3. vagrant --help 确定是否安装成功

2.2 Vagrant基本使用

  1. 创建并进入文件夹E:/vagrant_VM/centos7,然后执行
  2. 配置虚拟机创建的路径。设置环境变量:VAGRANT_HOME为:E:\vargant_home
  3. 基本命令
命令 作用
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的所有环境状态
  1. Vagrant开源社区提供了许多已经打包好的操作系统,我们称之为box。你可以从box下载地址(下文列出),找到你想要的box,当然你也可以自己制作一个。

    • 官方仓库:https://atlas.hashicorp.com/boxes/search
    • 官方镜像:https://vagrantcloud.com/boxes/search
    • 第三方仓库:http://www.vagrantbox.es/
  2. Vagrant提供在线安装服务,非常方便,但由于伟大的GFW,我们需要先FQ把box下载到本地,然后导入安装。
  3. 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 虚拟机安装分发

  1. 在线安装太慢啦。https://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-1905_01.VirtualBox.box
  2. 下载到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
  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基本安装

  1. 社区版本:Community Edition (CE) 免费的
  2. 企业版本:Enterprise Edition (EE) 收费的
  3. 官网:https://docs.docker.com/engine/release-notes/
  4. 在官网右上角可以选择版本。选择好后网页布局也会改变,本次学习使用18.09版本的docker。
  5. Mac上安装docker。直接傻瓜安装就行。
  6. Window安装docker,也比较傻瓜。
    • window 10以上才可以
    • Hyper-V 支持
  7. 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
  1. 可以把上述配置写到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

  1. 下载地址:http:/github.com/docker/machine
  2. 页面中的Release,下载win10的docker-machine-Windows-x86_64.exe
  3. 直接把docker-machine-Windows-x86_64.exe,复制到D:/docker-machine文件夹下。并改名为docker-machine.exe。
  4. 把文件夹D:/docker-machine,配置到环境变量path中。
  5. 进入power shell,输入docker-machine。有输出则表示安装配置成功

3.2 使用docker-machine

  1. 通过Virtualbox创建安装docker的虚拟机demo1:docker-machine create demo1
  2. 下载慢,可以下载完成镜像放到 C:\Users\11542.docker\machine\cache\boot2docker.iso
  3. docker-machine ls 查看创建的docker虚拟机
  4. docker-machine ssh demo1连接docker虚拟机
  5. docker-machine stop demo1停止docker虚拟机
  6. docker-machine rm demo1 删除docker虚拟机

第四节 Aws亚马逊云创建docker虚拟机

  1. 需要一张信用卡,用来注册账号
  2. 当然也可以选择国内的云服务商。
  3. 通过Security, ldentity & Compliance -> IAM -> Your Security Credentials ->Access keys创建认证信息。记下Security Key
  4. 创建文件夹~/. aws/credentials,根据官网配置信息
[default]
aws_access_key_id=AKID1234567890
aws_secret_access_key=MY-SECRET-KEY
  1. 通过本地的docker-machine,创建aws上的docker虚拟机。
# docker-machine名字aws-imooc
docker -machine create --driver amazonec2 --amazonec2- open-port 8000 --amazonec2-region us-west-1 aws-imooc
  1. 导入Aws的docker服务器到本地:eval $( docker-machine env aws - imooc)
  2. 创建完别忘记删除,因为会从你信用卡上扣费呀。

第五节 docker Playground 使用docker

  1. 访问网站:https://labs.play-with-docker.com/
  2. 它的登录名和密码在这个网站注册:https://www.docker.com
  3. 优点:不用安装直接使用
  4. 缺点: 共享资源,超时自动销毁

第一课 Docker践行DevOps理念-导学和安装相关推荐

  1. 计算机辅助技术学什么课,《CADCAM》课程导学计划

    原标题:<CADCAM>课程导学计划 CADCAM课程导学计划 课程的性质.目的及任务 CAD_CAM在AutoCAD基础上,进一步掌握三维CAD的建方法,并以此为切入点,转而学习并掌握常 ...

  2. IT职场新人第一课:我的吐槽+我学到的

    作为一个CSer,大学四年,混混沌沌地度过,专业知识掌握地一般,编程经历不多,对于面向对象的概念理解也不是很清晰,总之这四年现在回想起来,我还是错过了很多的机会,说到底,我还是缺乏一颗编程和钻研的精神 ...

  3. 新生导学课心得计算机,大一新生导学课论文_新生导学课心得_新生导学课感想文库...

    大一建筑学新生怎样系统地学习建筑史? 谢邀,结合今晚心情,随便一说.首先,就学生所需,在现在考试框架下,建筑史那点知识,门槛甚低.随便医- 大一新生的工程管理专业导论论文,5000字,请教高人啊,急啊 ...

  4. Docker学习第一课 -- docker简介和和学习路线

    Docker是一个用于开发,交付和运行应用程序的开放平台.Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件.借助Docker,您可以以与管理应用程序相同的方式来管理基础架构.通过利用 ...

  5. 第一课.Linux系统的介绍与ubuntu虚拟机安装

    Linux系统介绍 Linux系统是一个类Unix系统(Unix系统的克隆),Unix是有版权限制的,Linux由Linus Torvalds编写,向POSIX兼容(POSIX为可移植操作系统接口标准 ...

  6. 活动单导学计算机课,活动单导学 自主式研学

    [摘 要]学业水平测试重视基本知识.基本技能的考查,课堂复习效率至关重要.实施"活动单导学,自主式研学"是高中历史学科"小高考复习"课堂构建的基本模式,其课堂气 ...

  7. 电子计算机与多媒体导学案,5 电子计算机与多媒体板书设计及意图

    人教版五年级语文下册 导学案 教案 铜仁市漾头中心小学 教师:姚登净 5 <电子计算机与多媒体>导学案 [学习目标] 1.我能学会生字,读写词语: 2.我能正确.流利地朗读课文. 3.我能 ...

  8. CloudNative时代践行DevOps躲坑指南

    戳蓝字"CSDN云计算"关注我们哦! 2015年,谷歌成立了原生云计算基金会,标志着CloudNative时代的来临.它以容器化封装.自动化管理.面向微服务等特点,向人们展示了应用 ...

  9. python自动翻译导学案_变量python学案

    ●掌握常用的关系和逻辑运算符 ●掌握 Python 中的变量及其赋值 ●数字化学习与...●学生任务二: 阅读学案,计算一下表达式的值,把结果填在学习网站上. 练习算术...... 初中八年级信息技术 ...

最新文章

  1. 独家 | 熵–数据科学初学者必知的关键概念(附链接)
  2. 三维渲染引擎设计与实践(四)
  3. mysql设置参数不生效_关于mysql的wait_timeout参数 设置不生效的问题【转】
  4. 怎样为ubuntu eclipse 添加 GBK字符集
  5. oracle数据库行争用,Oracle技术之数据库高回滚争用的问题
  6. java 考试复习整理——JAVA类和类成员的修饰符
  7. nodejs readfilesync 路径_Linux 磁盘多路径聚合multipath
  8. Docker基本概念与实践(四)-部署简单web项目(tomcat+war+mysql)
  9. Ubuntu安装配置sougou输入法
  10. Android手机投屏利器米卓同屏助手
  11. Sklearn 卡方检验
  12. LoadRunner11代理在Win10操作系统启动不起来,或者报错:该内存不能为written
  13. vsftp日志文件汉字_为何手机存储空间还没用就快满了?删掉这些隐藏冗余文件满血复活...
  14. 万维网联盟:已完成对HTML5的规范开发
  15. lol服务器维护8月7,LOL8月7日维护到几点 具体更新了什么
  16. 百度地图瓦片层级范围对照表
  17. http-invoker插件原理解析
  18. 学生护眼灯色温多少合适?推荐色温在4000K的暖光护眼台灯
  19. 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》影评4篇
  20. OpenGL绘制球体模拟自由落体运动(基于Qt)

热门文章

  1. sims算法_如何从Sims 4 Mods文件夹中删除损坏的Mod
  2. win10删除本地用户,输入密码错误
  3. 计算机里共享与安全在哪里设置,电脑文件夹共享在哪里设置
  4. MySQL1054错误
  5. computed传参
  6. 苹果电脑双系统怎么切换 苹果电脑双系统的切换方法
  7. mysql btree索引概述
  8. 《Android开发高手课》学习笔记
  9. 关于删除对方后自己更新头像对方会知道吗
  10. html5响应式导航条,10个响应式设计的导航菜单源码-附教程