第七课 Docker践行DevOps理念-docker-cloud
tags:
- Docker
- 慕课网
categories:
- docker-cloud
- 安装Docker企业版
第一节 docker-cloud介绍
1.1 docker公司的盈利方式
- 企业收费版要提供一些适用于企业特性的服务。
- 培训和认证。培训价格非常贵2700美元呀(fuck), 证书195美元的。
- docker EE中有付费容器。按月收费。
- docker cloud用来web创建stack, service等。收费的。(现在Docker Store 和 Docker Cloud 集成到 Docker Hub 中)
1.2 docker-cloud
- docker-cloud: CaaS- Container-as-a-Service
- Standard模式。一个Node就是一 个Docker Host
- Swarm模式(beta) ,多个Node组成的Swarm Cluster
1.3 devops的流程
第二节 Docker Cloud的使用
2.1 Docker Cloud之自动build Docker image
- Account Settings ->Linked Accounts-> 绑定自己的github账户
- 创建一个Repositories,用来链接github具体的仓库。
- 用组织和个人够可以做实验,效果差不多
- 在docker hub组织创建Repository时,选择不了github组织的Repository可以暂时不选。等创建好Repository到build中选择。
- 构建规则:默认监控我们的master分支,只要有变化就会build image。Building Cache给关上。
- docker hub和github是同步的。如果github上dockerfile文件变化,马上它就会自动构建。
2.2 Docker Cloud镜像修改版本
- 现在github上打tag点。点击release按钮。然后创建tag为1.1.0, 傻瓜操作不截图演示啦。创建完成后有个1.1.0的标签。
- 然后docker hub上添加Tag的build规则。只要github上打Tag,发布版本这里就开始构建。
- 注意我们构建还是比较慢的,因为我们使用的是公共构建池。(组织的构建池应该是收费的。)
2.3 Docker Cloud之持续集成和持续部署实例
- 由于Docker Cloud改版的问题。这里做不了实验啦。不过思想理解一下就可以啦
- 这个按钮表示。只要image 发生变化我们就去做一次自动部署。
- build这里配置也需要改一下。选自己的构建池,自动测试放开它。
- 开发人员开始开发新需求或者新特性。(持续集成和持续部署一次流程)
- 一般开发人员不会允许在master进行代码修改。
- 方法一:创建新分支 在新分支上修改
- 方法二:fork到本地, 修改后提出合并请求。pull request
- 运行tox, 进行代码风格检查和单元测试。
- pull request时就会帮助负责人自动拉去代码,测试会不会成功。成功之后才能合入
- 合入代码操作又会出发image的重新构建。
- image发生变化service就会重新部署。
- 一般开发人员不会允许在master进行代码修改。
第三节 Docker企业版免费体验
3.1 实验环境
- 申请之后有一个月的试用期。
- 安装两台没有docker的虚拟机。
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.require_version ">= 1.6.0"
boxes = [
{
:name => "docker-ee-manager",
:eth1 => "192.168.205.50",
:mem => "3072",
:cpu => "1"
},
{
:name => "docker-ee-worker",
:eth1 => "192.168.205.60",
:mem => "3072",
:cpu => "1"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", opts[:mem]]
v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]
end
config.vm.network :private_network, ip: opts[:eth1]
end
end
# config.vm.synced_folder "./labs", "/home/vagrant/labs"
end
# 查看有没有docker 如果有删除存在的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.2 Docker企业版本地安装之UCP
- 设置环境变量(它的值在上图中最下面):export DOCKERURL=https://storebits.docker.com/ee/centos/sub-c51943aa-b05c-4808-815c-41d6c6c33ba1
- 按照安装步骤来就行了:https://docs.docker.com/ee/docker-ee/centos/
- UCP(universal control plane)可以理解成网页版的docker swarm,可以通过网页添加节点等在页面上操作
# 安装科学上网工具 要不然下载不了
export DOCKERURL=https://storebits.docker.com/ee/centos/sub-c51943aa-b05c-4808-815c-41d6c6c33ba1
sudo -E sh -c 'echo "$DOCKERURL/centos" > /etc/yum/vars/dockerurl'
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
sudo -E yum-config-manager \
--add-repo \
"$DOCKERURL/centos/docker-ee.repo"
# 安装版本 两个节点都安装版本
sudo yum -y install docker-ee docker-ee-cli containerd.io
# manager节点安装UCP 需要输入docker hub用户名密码
sudo docker container run --rm -it --name ucp -V /var/run/docker.sock:/var/run/docker.sock docker/ucp:2.2.4 install --host-address 192.168.205.50 --interactive
# 输入https://192.168.205.50 显示UCP的界面上传我们的UCP的licence可以完成认证
# 添加worker节点。这里页面上会提示输入下面命令
sudo docker swarm join - -token 自己秘钥 192.168.205.50:2377
3.3 Docker企业版本地安装之DTR
- 上面页面上找到Admin Settings,worker节点输入页面上的命令。完成后输入DTR的地址192.168.205.50可以看到DTR的web界面。
第四节 阿里云的容器服务
4.1 体验阿里云的容器服务
- 阿里云主界面:https://cn.aliyun.com
- 阿里云的容器服务Swarm已于2019年12月31日起停止技术支持(这里就不看了)
- 这些页面化的恭喜都差不多创建就完了