第一课 Docker践行DevOps理念-导学和安装

第一课 Docker践行DevOps理念-导学和安装

tags:

  • Docker
  • 慕课网

categories:

  • Docker
  • Devlop实践
  • 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的所有环境状态 |

  4. Vagrant开源社区提供了许多已经打包好的操作系统,我们称之为box。你可以从box下载地址(下文列出),找到你想要的box,当然你也可以自己制作一个。

    • 官方仓库:https://atlas.hashicorp.com/boxes/search
    • 官方镜像:https://vagrantcloud.com/boxes/search
    • 第三方仓库:http://www.vagrantbox.es/
  5. Vagrant提供在线安装服务,非常方便,但由于伟大的GFW,我们需要先FQ把box下载到本地,然后导入安装。

  6. 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 -y

sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证是否安装成功
sudo docker version
sudo docker run hello-world
  1. 可以把上述配置写到vagrantfile文件中,让以后创建的虚拟机直接安装docker
config.vm.provision "shell", inline: <<-SHELL
    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
	sudo yum makecache fast
	sudo yum install docker-ce-17.09.1.ce -y
	sudo systemctl daemon-reload
	sudo 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. 缺点: 共享资源,超时自动销毁
发布了61 篇原创文章 · 获赞 8 · 访问量 2802

猜你喜欢

转载自blog.csdn.net/aa18855953229/article/details/105020775
今日推荐