精华内容
下载资源
问答
  • 1、开通阿里云容器镜像服务 1.1、创建命名空间 1.2、创建镜像仓库(这里不需要执行,因为我使用代码登录的时候就会自动创建) 创建的仓库名称(不需要创建,在下面上传代码的时候,我们根据sh命令中的信息会...

    前言

    1、开通阿里云容器镜像服务

    1.1、创建命名空间

    WX20180815-144234@2x

    1.2、创建镜像仓库(这里不需要执行,因为我使用代码登录的时候就会自动创建)

    创建的仓库名称(不需要创建,在下面上传代码的时候,我们根据sh命令中的信息会进行创建,当然我们也可以自行创建)

    WX20180815-144409@2x

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lks3iLdf-1587457147619)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180815-145050@2x.png)]

    2.1、sh命令

    PREFIX=registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker
    PROJECT=com-hlj-springboot-docker
    tag=1
    
    
    docker login --username=HealerJean registry.cn-qingdao.aliyuncs.com --password=123456789
    
    
    echo "清理项目..."
    mvn clean install
    #cd  ${PROJECT}/
    echo "开始打包${PROJECT}..."
    mvn package
    
    echo "删除之前保留在电脑中的版本..."
    docker images | grep registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker | xargs docker rmi
    
    echo "开始构建..."
    docker build -t ${PREFIX}:${tag} .
    
    echo "${PROJECT}构建成功,开始上传至阿里云"
    docker push ${PREFIX}:${tag}
    
    echo "镜像${PROJECT}构建并上传至阿里云成功"
    
    
    
    

    2.2、Dockerfile 文件(这里需要注意一下)

    第一次上传From写java:8,,因为我们的镜像仓库中是空的,没有基础镜像, 表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载,

    FROM java:8
    MAINTAINER HealerJean
    ADD target/com-hlj-springboot-docker-0.0.1-SNAPSHOT.jar app.jar
    CMD ["java","-jar","/app.jar"]
    
    

    2.3、执行命令

    删除之前版本...
    Error: No such image: registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker:latest
    开始构建...
    Sending build context to Docker daemon  16.41MB
    Step 1/4 : FROM java:8
     ---> d23bdf5b1b1b
    Step 2/4 : MAINTAINER HealerJean
     ---> Running in e526e7154026
    Removing intermediate container e526e7154026
     ---> 8c8985e663a9
    Step 3/4 : ADD target/com-hlj-springboot-docker-0.0.1-SNAPSHOT.jar app.jar
     ---> ab8d3e75b4d8
    Step 4/4 : CMD ["java","-jar","/app.jar"]
     ---> Running in 252ce7fac08b
    Removing intermediate container 252ce7fac08b
     ---> c9b3b1f00fa9
    Successfully built c9b3b1f00fa9
    Successfully tagged registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker:latest
    com-hlj-springboot-docker构建成功,开始上传至阿里云
    The push refers to repository [registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker]
    955c377870ab: Pushed 
    35c20f26d188: Layer already exists 
    c3fe59dd9556: Layer already exists 
    6ed1a81ba5b6: Layer already exists 
    a3483ce177ce: Layer already exists 
    ce6c8756685b: Layer already exists 
    30339f20ced0: Layer already exists 
    0eb22bfb707d: Layer already exists 
    a2ae92ffcd29: Layer already exists 
    latest: digest: sha256:218917c3411a807842ca66f6bb8baccd29b45746d49524611584271d3605c465 size: 2212
    镜像com-hlj-springboot-docker构建并上传至阿里云成功
    
    

    2.4、观察浏览器发现多出来一个镜像仓库,观察仓库的版本信息

    WX20180815-145708@2x

    WX20180815-145748@2x

    2.5、修改Dockerfile 文件的From ,修改为基础镜像为阿里云仓库镜像,设置为标签为 1 ,这个镜像我们在阿里云上不要删除,否则执行命令的时候,会报错招不到该镜像

    FROM registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker:1
    MAINTAINER HealerJean
    ADD target/com-hlj-springboot-docker-0.0.1-SNAPSHOT.jar app.jar
    CMD ["java","-jar","/app.jar"]
    
    
    删除之前版本...
    Untagged: registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker:latest
    Untagged: registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker@sha256:4e44ea57cd18e70bce93ba8609dd5dee9721f62b02cdb34fdeacc0b2049c21ea
    Deleted: sha256:8627ddcbf358330568a54d786dc27e2d6948759a2e55257620af761bec30650d
    Deleted: sha256:b4c461e3c679783a8015e04b36ad00daf592c590b17ceac84597dd12b818bf9e
    Deleted: sha256:3642a8cf34b64fc809ba03a381626d61e35dbced37429f8e288f42827049a220
    Deleted: sha256:45d1e620ebd673688433d8dc1b14fc100a5650c702224b288d520fe8d71a7d7f
    开始构建...
    Sending build context to Docker daemon  16.41MB
    Step 1/4 : FROM registry.cn-qingdao.aliyuncs.com/duodianyouhui/com-hlj-springboot-docker:latest
    latest: Pulling from duodianyouhui/com-hlj-springboot-docker
    
    

    3、观察阿里云镜像信息

    WX20180815-145708@2x

    WX20180815-145748@2x

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YklCvIML-1587457147627)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180815-145050@2x.png)]

    3.2、修改仓库类型,不可使用:修改仓库类为为公开,否则后面容器服务不能够搭建web成功,但是这样的话,就会泄漏我们的源码镜像文件

    WX20180816-111017@2x

    WX20180816-111049@2x

    3.2.2、修改仓库类型,建议使用:需要到docker集群进行仓库登录,之后之后就可以使用私有仓库了。安全

    WX20180816-181648@2x

    WX20180816-181727@2x

    使用的是阿里云镜像仓库,仓库域名 应填写阿里云镜像仓库域名,如 registry.cn-hangzhou.aliyuncs.com,并使用您的阿里云用户名和仓库独立登录密码以及注册邮箱进行登录。登录成功也不会给提示

    3.2.2.1、仓库密码的设置,到容器镜像服务中去

    WX20180816-182010@2x

    4、容器服务启动web应用尽心访问

    4.1、创建应用

    WX20180816-111237@2x

    4.2、不勾选,检测最新,防止我们发布版本的时候,出现错误的版本(通过上面我们可以看到版本是一模一样的,都是latest,当然这个我们可以自己选择版本是最好的,这里是为了方便,最好是版本我们可以自己进行输入,第二章节会讲)

    WX20180816-111324@2x

    4.3、使用镜像进行创建

    4.3.1、选择镜像

    WX20180816-111552@2x

    4.3.2、端口映射

    简单路由-域名配置

    主机端口为空,表示随机暴露一个主机的端口(暴露 HTTP/HTTPS 服务时,您可以不需要知道主机暴露的具体端口是什么,可以使用 overlay 网络或者 VPC 网络来直接访问容器的端口),容器端口为 8080。您使用 wordpress-web 服务的 8080 端口来提供 HTTP 服务,使用的协议是 TCP 协议。,但是这里我们还是最好制定一个端口吧,主机端口也是8080 ,最好不要用80端口,小心出问题吧

    WX20180816-120927@2x

    4.3.3、简单路由配置(配置域名)(写不写http://都可以)

    简单路由(支持 HTTP/HTTPS)

    1、配置阿里云提供的子域名
    springboot;http://springboothttp;http://rongqi.dangqugame.cn;httprongqi.dangqugame.cn
    
    观察有没有http;//会不会报错
    
    阿里云提供的子域名服务
    springboot;
    http://springboothttp;
    
    我们自己的域名
    http://rongqi.dangqugame.cn; 
    httprongqi.dangqugame.cn
    

    WX20180816-121207@2x

    2、配置自己提供的域名

    1、集群,找到这个集群容器

    WX20180816-113417@2x

    2、查看这个容器的负载均衡id

    lb-m5eezyl4kqkux3
    
    

    WX20180816-113800@2x

    3、打开负载均衡控制台,通过这个id查看ip地址,然后域名这个ip分配过去

    WX20180816-114028@2x

    3、配置启动的环境
    ## 可写 可不写(也可以写一个我们配置文件中没有声明的端口,注意要和上面的其他端口同意) server.port=8080
    
    spring.profiles.active=dev
    
    
    

    WX20180816-192218@2x

    4.3.4、创建成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a2BBLQ5G-1587457147643)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180816-115503@2x.png)]

    1、观察该应用所有域名(可以观察到有我们自己设置的,也有阿里云给我们提供的)

    WX20180816-120040@2x

    2、重新配置(建议使用yml配置文件配置,不建议瞎用下面的进行配置)

    1、 服务->变更配置

    WX20180816-121324@2x

    WX20180816-121351@2x

    5、更新版本(下面是标准发布,会将服务停止,建议看下一篇蓝绿发布进行更新)

    1、如果所有的使用现在的tag:1版本,则每次从本地发布到阿里云镜像文件之后,点击重新部署即可自动完成发布新版本,但是回退版本是不可能的事情了,

    WX20180816-122813@2x

    2、如果想每次的旧版本不删除,则我们在打包命令的时候,taq就要发生变化,tag变成日期的格式

    tag=1
    #tag=`date +%m%d%H%M`
    

    2、容器服务中->应用->变更配置,这个时候出来一个配置文件,我们修改后面的版本即可

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bhyng4zL-1587457147648)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180816-192301@2x.png)]

    WX20180816-192435@2x

      image: 'registry-vpc.cn-qingdao.aliyuncs.com/duodianyouhui/duodian-youhui-server:08224522'
      
    duodian-youhui-server:
      restart: always
      ports:
        - '8080:8080/tcp'
      environment:
        - LANG=C.UTF-8
        - JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
        - server.port=8080
        - spring.profiles.active=dev
      memswap_limit: 0
      labels:
        aliyun.scale: '1'
        aliyun.routing.port_8080: test.dangqugame.cn;test
      shm_size: 0
      image: 'registry-vpc.cn-qingdao.aliyuncs.com/duodianyouhui/duodian-youhui-server:08224522'
      memswap_reservation: 0
      kernel_memory: 0
      mem_limit: 0
    
    

    通过编排模板创建,当我们使用这种容器多了之后,发现上面填表格清单并不好用,建议使用下面的这种方式

    2、复制之前点击变更配置的时候,出现的yml文件内容

    1、创建编排模板

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVkgGI2h-1587457147649)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180824-182622@2x.png)]

    2、复制之前

    server-dev:
      restart: always
      ports:
        - '8081:8081/tcp'
      environment:
        - LANG=C.UTF-8
        - JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
        - spring.profiles.active=dev
        - server.port=8081
      memswap_limit: 0
      labels:
        aliyun.scale: '1'
        aliyun.routing.port_8081: serverdev
      shm_size: 0
      image: 'registry-vpc.cn-qingdao.aliyuncs.com/duodianyouhui/dev-server:08241834'
      memswap_reservation: 0
      kernel_memory: 0
      mem_limit: 0
    

    2.1、复制-可以直接 创建编排(未删减版)

    WX20180824-190622@2x

    2.1、复制进入-右面点击编辑,可以自己看看修改下内容,点击保存(这样就会把系统提供的默认的删除)

    WX20180824-190747@2x

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0lltbAnx-1587457147653)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180824-190849@2x.png)]

    server-dev:
      image: 'registry-vpc.cn-qingdao.aliyuncs.com/duodianyouhui/dev-server:08241834'
      ports:
        - '8081:8081/tcp'
      restart: always
      environment:
        - LANG=C.UTF-8
        - JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
        - spring.profiles.active=dev
        - server.port=8081
      labels:
        aliyun.scale: '1'
        aliyun.routing.port_8081: serverdev
    
    

    3、根据模板创建应用

    3.1、创建应用

    WX20180824-190947@2x

    3.2、现在我们需要的模板

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsd5gt2q-1587457147655)(https://raw.githubusercontent.com/HealerJean123/HealerJean123.github.io/master/blogImages/WX20180824-191017@2x.png)]

    3.3、模板里面直接改或者编辑即可,完成该项目

    WX20180824-191106@2x

    ContactAuthor

    展开全文
  • 近年来Docker容器作为一种轻量级虚拟化技术革新了整个IT领域软件开发部署流程,如何高效自动管理容器和相关的计算、存储等资源,将容器技术真正落地上线,则需要一套强大容器编排服务,当前大红大紫的Kubernetes已经...
  • 服务器ECS和云虚拟主机VPS的区别

    千次阅读 2019-09-03 22:59:13
    服务器ECS支持远程(推荐腾讯服务器) 虚拟主机VPS不支持远程只能用ftp
    云服务器ECS推荐阿里云服务器

    云服务器(Elastic Compute Service 简称ECS)基于阿里云自主研发的飞天大规模分布式计算系统,通过虚拟化技术整合IT资源,为各行业提供互联网基础设施服务,适用于社区网站、企业官网、门户网站、电子商务网站、SAAS应用(如:在线ERP,CRM,OA,HR)、游戏类应用等。

    ECS具有自助管理、数据安全保障、自动故障恢复和防网络攻击等高级功能。用户对云服务器的操作系统有完全控制权,通过连接管理终端自助解决系统问题,进行各项操作。数据保障是通过对云服务器的磁盘数据生成快照,用户可使用快照回滚、恢复以往磁盘数据,加强数据安全。对已安装应用软件包的云服务器支持自定义镜像和数据盘快照批量创建服务器,简化用户管理部署。使用ECS API调用管理,通过安全组功能对一台或多台云服务器进行访问设置,使开发使用更加方便。

    ECS具有稳定、安全、弹性和高性能等特点。云盘数据可靠性不低于99.999%,能够自动宕机迁移、数据备份和回滚系统性能报警;设有防DDoS系统、安全组规则保护,实行多用户隔离,防密码破解;10分钟内可启动或释放百台云服务器,5分钟内停机升级CPU和内存,在线不停机升级带宽;随机IOPS 1.2万、300MB/s本地SSD盘性能,多线BGP骨干网络接入,高性价比,节约成本。

    ECS帮助用户简化开发部署过程,降低运维成本,构建按需扩展的网站架构,从而更适应互联网应用快速多变的特性。

    云虚拟主机VPS

    虚拟专用服务器(英语:Virtual private server,缩写为 VPS),是将一台服务器分割成多个虚拟专享服务器的服务。实现VPS的技术分为容器技术和虚拟机技术 。在容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为用户提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。 IDC资源租用,由VPS提供商提供。不同VPS提供商所使用的硬件VPS软件的差异,及销售策略的不同,VPS的使用体验也有较大差异。尤其是VPS提供商超卖,导致实体服务器超负荷时,VPS性能将受到极大影响。相对来说,容器技术比虚拟机技术硬件使用效率更高,更易于超卖,所以一般来说容器VPS的价格都高于虚拟机VPS的价格。 这些VPS主机以最大化的效率共享硬件、软件许可证以及管理资源。每个VPS主机都可分配独立公网IP地址、独立操作系统、独立超大空间、独立内存、独立CPU资源、独立执行程序和独立系统配置等。VPS主机用户可在服务器上自行安装程序,单独重启主机。
    Vultr优惠链接:直达链接

    展开全文
  •  “11月2日晚间,阿里巴巴集团公布2017财年第二季度(2016年7月1日至2016年9月30日)业绩,云计算业务保持强劲活力,付费用户数量增长至65.1万,推动阿里营收达到历史新高14.93亿元,同比增长130%,连续第六个...

    新闻资料

        我们先看一则报道:

        “11月2日晚间,阿里巴巴集团公布2017财年第二季度(2016年7月1日至2016年9月30日)业绩,云计算业务保持强劲活力,付费用户数量增长至65.1万,推动阿里云营收达到历史新高14.93亿元,同比增长130%,连续第六个季度增幅领跑全球,凸显进入爆发周期后不断扩大市场领先优势的强劲势头。

      财报显示,2017财年第二季度阿里云云计算付费用户数量同比增长108%,覆盖金融、医疗、公共交通、能源、制造、政府机构、游戏、多媒体等更加广泛的行业和企业类型。这是阿里云连续第三个季度披露云计算付费用户数量,前两季财报中云计算付费用户数量均保持了三位数增幅。

      同一季度,全球主要云计算服务商均呈现较大幅度增长,在全球云计算3A(AWS、Azure、Alibaba Cloud)阵营中,阿里云继续以130%的营收增幅领跑市场。同期,亚马逊AWS营收增幅55%,微软Azure营收同比增116%。

      阿里巴巴财报显示,阿里云继续扩大市场领先优势。中国超过35%的网站由阿里云提供安全护航。在今年10月举行的2016杭州·云栖大会中,全球超过4万名科技精英现场参会,超过700万人在线观看直播,成为全球规模最大的科技盛会之一。

      同时,财报还显示,除了基础的IaaS服务,阿里云用户对数据计算、安全等服务的应用也在增长。近期,杭州市公布了杭州城市数据大脑计划,采用阿里云ET人工智能技术,对城市进行全局实时分析,并自动调配公共资源。

      在产品方面,今年10月阿里云宣布,得益于规模效益和今年飞天操作系统的大规模技术升级,对中国区云产品价格进行全线下调,核心云产品价格降幅最高达50%。同时,在今年的天猫双11全球狂欢节中,阿里云将对企业级市场展开大促,对大量云产品给出五折甚至更低的折扣力度,加速云计算的普及,向云计算用户普惠新技术突破带来的规模效益。”

        通过阿里云强劲的增长势头中可以预见,阿里云在中国云计算行业中出于主流地位,随着国内容器云平台的出现,阿里云在2015年年底也公测了容器服务,并在2016年5月正式商业化,一年时间过去了,现在看看阿里云容器服务现在是个什么样子了。

        我们在看另外一则报道:

        “10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云称其将为客户提供更加先进的云上应用管理服务。双方称在开源容器技术以及其发展方向共同努力,为客户提供本地化Docker的企业级支持和咨询服务。

         合作内容:

    •     Docker公司选择阿里云平台作为Docker Hub在中国运营的基础服务。Docker Hub等服务落地中国,可以更好地服务国内开发者,促进中国技术社区的成长。得益于阿里云强大的云基础设施,将会极大提升国内用户对Docker服务的访问体验。

    •     阿里云也是首家在国内获得Docker Engine CS(商用版)以及Docker Datacenter (DDC)销售权,为Docker客户提供企业级支持和咨询服务。阿里云将利用自己的技术能力和市场影响力推动容器技术在国内企业落地,和合作伙伴一起帮助企业利用容器技术提升效率、实现业务创新。

    •     阿里云将成为Docker官方支持的云服务提供商。Docker可以更好地支持阿里云能力,提升用户体验,把阿里云打造成为容器运行的最佳平台之一。

    阿里云容器服务

        通过这则新闻报道,我们发现阿里云在经过一年的实践过程中,最终选择了现在对中国容器市场影响力最大的Docker公司作为容器合作伙伴,并全方位的在国内市场提供Docker正统的产品和服务。

        我们登录到阿里云上面,看看现在阿里云容器服务变成什么样子了,我们在阿里云页面上选择产品,可以在云计算基础服务下的弹性计算分类中找到容器服务。

       

        选择容器服务后,会进入到容器服务主页面:

     

        在这里可以看到,从阿里云容器服务的市场受众上,阿里选择了金融行业,因为可以清楚地看到“金融云支持正式上线”,说明选择阿里云容器服务的大部分应该是金融行业用户,结合国内容器创业公司市场推广情况,可以发现在金融行业推广容器是可以快速落地,并且可以持续发展的。

        下面看看阿里云容器服务是怎么收费的:

     

        在这里可以看到,容器在中小规模使用中并不单独收费,最多可以支持5个集群,总计100台云服务器,在这个范围内只收取云服务器、负载均衡等云资源费用,但是如果大规模使用,就需要同阿里云客服人工联系,单独由客户经理来进行报价。

        下面是容器服务控制台页面:

       

        要使用容器服务,就现需要创建集群,下面是创建一个空集群,也就是集群里面没有云服务器,创建完这个空集群之后,可以把已经申请到的云服务器添加到这个集群中:

       

        也可以在创建集群的时候选择创建节点,这样创建完这个集群后,集群里面就会自动添加上云服务器,通过选择实例数量,可以为集群添加多台云服务器,云服务器是单独收费的,配置越高,费用也就越高。

       

        创建好集群后就可以看到集群信息,接着就可以创建应用:

        

       每次都通过这种图形界面创建应用显然比较麻烦,对于容器来说编排是很重要的,所以阿里云容器服务也提供了通过已经编排好的模板创建应用的功能,需要注意的是编排模板的内容要符合 Docker Compose 的格式:

       

        应用创建好之后就可以查看组成应用的服务信息,选择一个服务后,可以在服务详情页面查看该服务的所有容器:

       

        还可以查看服务的配置信息:

       

        还可以查看服务的日志信息和事件信息,当然也可以让外部用户通过internet来访问服务:

       

        这种通过internet访问服务的名称是:路由应用暴露 HTTP 服务,原理如下图所示,当新建一个集群的时候,会默认给这个集群分配一个负载均衡实例。该负载均衡实例会将集群中的所有节点加入作为后端,同时前端会暴露 80 端口,后端所有节点的机器会暴露 9080 端口。容器服务会启动一个路由应用acsrouting,即阿里云容器服务路由应用(Alibaba Cloud Container Service Routing)。该路由应用只有一个服务,即路由服务。该服务是全局(global)的,即每个节点(下面说到的主机和节点都是同一个意思,即 ECS 的 vm 实例)都部署了该服务(或者说镜像)的一个拷贝,也就是容器。每个节点都由这个容器用来路由 HTTP 服务或者 HTTPS 服务。

    如图所示,HTTP 服务,负载均衡实例的前后端端口的映射为 80:9080,主机与路由容器之间的端口映射为 9080:80,即路由的容器暴露 80 端口,其它用作 Web 服务的容器可以暴露任意的端口。只要在容器启动的时候设置主机和容器端口的映射,routing 服务就能获取到相应的端口进行请求的路由。

       

        对于容器来说,是非持久化的,也就意味着数据是无法长期保存的,这时候就需要使用到阿里云提供的数据卷功能,通过数据卷保存需要持久化的数据,集群必须满足以下两个条件,才可以开通数据卷功能,一个是集群 Agent 的版本为 0.6 或更高,另一个是集群里部署了acsvolumedriver 应用。

        阿里云容器服务提供了两种数据卷类型,一种是NAS(提供标准的文件访问协议,您无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统),另一种是OSSFS(阿里云官方提供的基于 FUSE 的文件系统,OSSFS 数据卷可以将 OSS 的 Bucket 包装成数据卷)。

       创建NAS数据卷:

       

        创建OSS数据卷:

       

        对于容器云平台来说,最主要的就是镜像,阿里云容器服务提供了几种类型的镜像源,一种是Docker 官方镜像(Docker Hub 提供的官方镜像),一种是阿里云镜像阿里云容器 Hub 提供的镜像,包含公开镜像和私有镜像),一种是用户镜像:(用户个人创建的镜像),同时还将阿里云上经常使用的镜像作为常用镜像进行推荐。

       

        我们还可以通过镜像仓库控制台来管理镜像:

       

        由于阿里云同Docker公司形成了战略合作,并且使用Docker公司提供的镜像仓库,所以需要使用Docker公司的账号才能管理镜像:

       

        阿里云除了提供镜像,还提供编排模板,因为在对容器化应用的实际使用中,模板会比镜像更方便:

       

        当然也可以自己编写编排模板,定义和部署多容器应用,支持Docker Compose格式:

       

    总结

        下面一张图可以比较直观的程序阿里云容器服务中应用、服务、容器、集群、节点之间的关系:

       

        有下面几种应用场景:

        WEB应用容器化部署:在容器集群中加入两台云服务器和一个负载均衡,并通过云数据库 RDS 版提供数据存储。最后选择 WordPress 等容器镜像,一键部署 Web 应用。

       

        持续集成构建:在阿里云容器 Hub 创建一个自动构建类型的镜像仓库,选择关联代码源到 GitHub 或云 Code。镜像构建完毕后,通过调用容器服务的 OpenAPI 完成容器的部署。

       

        微服务构架:将用户现有的复杂系统拆分成多个微服务,每个微服务的内容用一个镜像管理。通过 Docker Compose 模板描述服务之间的依赖关系和配置。通过容器服务选择之前创建的编排模板创建应用。

       


       

       

       

    展开全文
  • Docker总结(配合阿里云容器镜像服务)

    万次阅读 多人点赞 2019-04-09 16:34:40
    Docker是个很好的工具,刚开始用觉得... Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。 Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个...

    Docker是个很好的工具,刚开始用觉得还没虚拟环境好用,随着深入了解,越发觉得Docker好用,今天就来总结一下使用心得。

    一、Docker基础

    1、背景知识

    1)docker是什么?

          Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

    Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

    注册服务器(repository),仓库(registry),镜像(image),容器(container)之间的关系:注册服务器主要是用来存放仓库的服务器,在一个服务器上有多个仓库,而仓库又可以分为公共仓库和私有仓库,一个仓库里面有可以有多个镜像,而容器则是镜像的一个实例

        下图是docker组件:

    图3

          Docker之所以火的很快,原因之一就是它的仓库。仓库类似于github,很多现成的镜像供各位下载,直接用docker pull redis-server(这个名字是瞎起的)就可以拉下来一个redis服务器的镜像,放到自己的docker里就能用了,不用自己解决依赖、安装redis。好多开源工具都有docker镜像,这就使得用户只需要下载使用就行,完全省去了处理软件依赖、缺少库文件、安装部署等环节。

    2) docker用途,目前有三大类

    (1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

    (2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

    (3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

    2、docker安装:

    1)Windows安装,推荐使用win10,参考我的另一篇博客---windows10安装docker以及挂在在pycharm

    2)Mac安装,参考博客---Mac平台上Docker安装与使用

    3)  Centos安装

        在centos下,如果有epel源直接yum install docker-io就完成安装了。

        图2

        /etc/init.d/docker start启动docker。

    4)Ubuntu安装

        sudo apt-get remove debian-keyringdebian-archive-keyring

        sudo apt-get clean

        sudo apt-get update && sudo apt-get-y install debian-keyring debian-archive-keyring

        wget -qO- https://get.Docker.com/ | sh

        注:如果ubuntu启用了ufw,要配置使其能转发请求,并允许2375端口访问外网。

    3、docker命令

    在知道docker命令之前,有必要弄清楚镜像和容器的差别,简单来说,镜像(Image)就是一堆只读层(read-only layer)的统一视角; 容器 = 镜像 + 读写层

    详细可参考我的另一篇文章---docker容器和镜像区别

    以下命令最好使用管理员权限运行,避免出错。

    1、镜像

    1)获取镜像:docker pull  images-name

    2)查看所有镜像:docker images 

    3)删除镜像:docker rmi image-id

    4)保存镜像:docker commit -m="description about images" --author="author" {container_id}  {repository/images_name:tag}

    5)推送镜像到代码仓库(可以后面的阅读完在看这个),以阿里云docker平台为例:

    ①  docker login --username=your_username registry.cn-beijing.aliyuncs.com
    ②  docker tag [ImageId] registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
    ③  docker push registry.cn-beijing.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]

    6)使用Dockerfile创建新的镜像(注意:末尾有一个点,表示当前路径):docker build -t "repository/images_name:tag" .    

    2、容器


    docker start 容器id
    docker stop 容器id
    docker exec -it 容器id /bin/bash  # 进入容器
    docker cp 宿主机绝对路径  容器id:路径   # 宿主机和docker容器之间复制文件 

    # 关于删除容器:

    方法一:

    #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,

    sudo docker ps -a|grep Exited|awk '{print $1}'

    #查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

    sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

    方法二: 

    #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

    sudo docker rm $(sudo docker ps -a -q)

    方法三:

    #根据容器的状态,删除Exited状态的容器

    sudo docker rm $(sudo docker ps -qf status=exited)

    方法四:

    #Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

    sudo docker container prune  (推荐)

    图5

    指定映射最常用的是第一种,直接指定宿主端口:容器端口;

    第二种,假如宿主有多个ip的话,让容器的端口绑定到宿主的固定一个ip的端口上;

    第三种,只绑定宿主ip,端口随机取;

    第四种,它的意思是一条docker run命令可以同时用多次”-p”参数,指定多个端口映射关系,比如,docker run –d –p 99:80 –p 33:443 –name mynginx33 nginx

    启动容器时用-P(大写)参数,表示让容器随机对应一个宿主机的端口,如上,容器的80端口对应宿主的32768端口,容器的443对应宿主的32769端口。

    比如我的宿主ip是192.168.0.55,这时候在宿主机的浏览器输入192.168.0.55:32768就可以访问到docker容器里的nginx应用了。

    端口随机映射的好处是:端口不会冲突。难点是,生产中还得用脚本或者其他方式获取到这个随机的端口,由于它是变化的,所以脚本必须得适应这种变化性。

    图6

    用小p来手动指定端口映射,如上所示,将容器的80端口映射到宿主的91端口上,而443没有指定映射关系,所以443不可访问。

    二、制作自己的Docker镜像

    自己制作的docker我都推送到了阿里云docker管理平台了,而不是推送到docker官方的管理平台。下面首先介绍一下使用阿里云docker管理平台创建自己的仓库。

    1、阿里云docker管理平台创建仓库

    1)进入阿里云镜像服务控制台,新建镜像仓库,如图

    2)新建仓库弹窗,一步一步按提示填,注意,设置代码源可以使用github,阿里云code等等,这里我使用的是阿里云code,后面可以使用项目里面的Dockerfile自动生成镜像,具体步骤下面会详细介绍

    3)新建完之后,会有镜像仓库列表,显示镜像仓库信息

    4)点击管理,基本信息,会有各个命令提示:

    登录阿里云docker registry:

      $ sudo docker login --username=  registry.cn-beijing.aliyuncs.com
    

    登录registry的用户名是您的阿里云账号全名,密码是您开通服务时设置的密码。

    你可以在镜像管理首页点击右上角按钮修改docker login密码。

    从registry中拉取镜像:

      $ sudo docker pull registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
    

    将镜像推送到registry:

      $ sudo docker login --username= registry.cn-beijing.aliyuncs.com
      $ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
      $ sudo docker push registry.cn-beijing.aliyuncs.com/spencer_docker/django2:[镜像版本号]
    

    其中[ImageId],[镜像版本号]请你根据自己的镜像信息进行填写。

    2、手动构建Docker镜像

    这种方法就是根据docker镜像为基础镜像来创建容器,然后运行容器,在容器中安装自己需要的包,然后再提交(commit)一下,推送(push)到自己的镜像仓库就ok了。

    下面以一个Ubuntu:16.04为例,更改为自己的python3.6+django2.0镜像,由于三个版本(v1,v2,v3)都是使用的原始的Ubuntu:16.04,所以三种生成进行镜像方法介绍完之后再以一个版本为例介绍docker环境配置。

    1)拉取Ubuntu:16.04官方镜像:

    2)进入镜像,变为容器,随便安装一些包

    3)退出容器,exit,提交镜像(命令可以看本博客命令部分的镜像命令)

    如图,上图提交命令解释:

    ① -m是对提交的描述,author是作者(选填),后面的c28e5976a6ab是修改容器的id,后面的是新镜像名字和标签(tag)。

    ② 成功之后,会生成新的镜像id

    ③ 输入docker images 查看镜像,会发现新的名为spencer/django,标签为v1的镜像已经存在。

    4)推送到阿里云docker管理平台,命令参考上面将镜像推送到阿里云registry

    5)打开阿里云镜像服务控制台,进入镜像仓库列表-->管理-->镜像版本,如下图,版本,镜像id,和本地推送上来的版本,镜像id一样

    6)删除本地images,拉取阿里云docker镜像管理台镜像,如下图

    3、利用Dockerfile构建Docker镜像

      由Dockerfile自动构建镜像,其实就是把手动构建的命令逐行写入一个“脚本”里,只不过这个脚本有自己的语法,如下图

    wKioL1fkFjbCb5-DAAMG1r9ceFY874.png

    1)现在在本地创建一个Dockerfile文件,如图,touch Dickerfile

    2)使用Dockerfile生成镜像,注意:

         ① 如果是手动创建的话,不要创建txt文件,不然本地使用Dockerfile生成docker镜像的是,会报找不到的错误,

         ② 创建命令:docker build -t "repository/images_name:tag" .   

             新建镜像最好在Dockerfile当前路径下面创建,末尾可以用点表示,如果不是在当前路径,需要使用绝对路径

    3)推送到阿里云docker管理平台,如下图

    4、利用阿里云镜像平台的代码源Dockerfile构建docker镜像

       可以将Dockerfile文件放在项目里面,然后利用阿里云镜像平台自动生成镜像功能,生成镜像,生成之后可以直接在本地拉取远程镜像。

      1)可以在阿里云codegithub,等代码管理平台,创建项目,然后将自己的Dockerfile放大项目,推送到远程代码管理平台,然后绑定到阿里云镜像仓库,在创建镜像仓库的时候,设置代码源的选项,设置到Dockerfile文件路径下面就行,具体项目代码不再展示,如下图

    2)进入镜像列表-->管理-->构建-->立即构建,注意:构建设置里面要设置对的Dockefile路径,不然会构建失败。

    3)构建成功,查看镜像,拉取镜像到本地

    点击镜像版本,如图,构建成功

    本地拉取镜像,如图

    注意:建议大家使用dockerfile创建镜像,因为启动镜像,在容器内安装包再commit ,每一次ocmmit都相当于多了一层,这样会导致镜像占用空间比较大而且臃肿,推荐使用dockerfile创建镜像,把多个安装包的步骤放在一个RUN里面,使用&&连接,这样安装多个包相当于在一层中,详细可参考《从入门到实践2》一书,讲解的很到位,下面是百度云盘的链接,有需要的朋友可以拿走。

    https://pan.baidu.com/s/1QLsprDiB_fz_r06m_HcKfQ

    5、docker环境配置python3.6+django2.0

         其实docker镜像包都是可以通过Dockerfile一次性部署的,我在研究的时候分开了弄,走一遍流程,这样写到dockerfile中保证不会出错。接下来就是我研究过程,博友们不必看,就是简单的安装一些依赖包的过程

        因为我构建的镜像是以ubuntu为基础,ubuntu原始安装命令是apt-get install 

    1)更新apt-get install 

         命令:apt-get update

    2)安装Python3.6

    说明一下:目前通过 apt-get install python3直接安装的是Python3.5版本,因为python3.6(apt-get install python3.6是无效的)是最新版本,所以只能先安装Python3.5然后升级到3.6。倘若Python3.6全部完善之后出来Python3.7,3.8,3.9等等,这样就可以直接通过apt-get install python3安装3.6了。

    ①安装Python3 ,安装成功之后,输入python3,会显示Python3.5的交互环境

    命令:

    apt-get install python3

    ②安装Python3.6的需求包

    命令:

    apt-get install software-properties-common

    ③添加Python3.6

    命令:

    add-apt-repository ppa:jonathonf/python-3.6

    ④更新apt-get 

    命令:

    apt-get update
    

    安装Python3.6,

    命令:

    apt-get install python3.6

    ⑥安装成功之后输入Python3依旧是Python3.5的交互环境,这样很不方便,接下来就是实现输入Python直接进入到Python3.6的交互环境,如下图:

    第一步:which python3 ---查看Python3.5安装在何处

    第二步:更改软链接,输入Python默认启动Python3.5,命令:ln -s /usr/bin/python3.6 /usr/bin/python

    第三步:更改默认启动为Python3.6,注意第三条命令最后的一个2,这个是排序,只要python3.6的排序比3.5的高就行,命令:

               update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

    3)安装pip

    ①安装pip3

    命令:

    apt-get install python3-pip

    ②更新pip3为pip,并升级

    命令:

    pip3 install --upgrade pip

    4)升级python-dev

    起初并不知道这个还需要升级,因为他原本的dev是Python3-dev,但是安装一些包的时候老是报如下错误:

    Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='........

    找了n久,才发现是这个原因,之前安装原本的dev是Python3-dev,要升级到Python3.6-dev,如下图

    命令:

    apt-get install python3.6-dev

    5)批量安装依赖包

         把需要安装的依赖放到一个名为requerments的文件中,然后使用命令 pip install -r requerments,批量安装依赖包

    命令:

    pip install -r requerments

    展开全文
  • 目前Docker的使用越来越离不开对容器的监控,阿里最近上线了容器服务,不但提供了核心的容器和宿主机监控能力,而且支持集成 Cloud Insight 监控,下面会介绍如何集成。
  • 另一部分资源是位于另一个机房中的云平台中,其中使用云主机运行docker容器,以提高云主机的资源利用率,以及提高工作效率等。两套系统环境之间配置了加密通信线路打通了两端的私网。 以下配置可以达到几个目的: ...
  • 基于阿里云容器服务的微服务实践 - Part 3. 容器微服务实践作者:chszs,未经博主允许不得转载。经许可的转载需注明作者博客主页:http://blog.csdn.net/chszs三、设置Docker的Swarm模式Docker Swarm提供了一个...
  • 目录 云计算平台的两种云安全架构 从云主机角度可以做到的安全 统一的云安全管理平台 从云主机层面看Docker容器的安全 CWPP平台的最佳实践案例
  • Docker选择容器作为核心基础,依靠容器技术支撑的Docker迅速成为国内外各大云计算厂商以及开发者手中的至宝。在一片热火朝天之后,新的革命已经悄然来到。 1.1 云计算平台 回首历史,云计算时代蕴育出了众多...
  • 华为云容器部署WordPress服务     创建云容器引擎 控制台 -> 资源中心 -> 云容器引擎CCE   云容器引擎CCE -> 资源管理 -> 集群管理 确保有可用集群 云容器引擎CCE -&...
  • 容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应 用及其依赖项。运行应用程序所必需的组件都将打包成一个镜像并可以复用。执 行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存...
  • 初次使用云主机时,会有一些需要注意的地方,如:可以远程登录云主机但是无法ping通,在云主机安装数据库后,无法远程连接,搭建了邮件服务器但是无法发送邮件等等,这些主要都是涉及端口的开放。 〇、前言 云服务商...
  • 容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程系统配置的隔离,为用户应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重...
  • 这篇文章并不是要讲解Docker,而是主要介绍如何在Google云主机上面利用Docker镜像搭建服务器 首先,我们进入Google Cloud Platform云平台,找到Compute Engine,选择创建实例,下面这部分可以根据自己的情况配置 ...
  • 于是果断选择氪金使用阿里容器服务K8S版,既省去了自己各种操作的压力,也权当是体验一把国内顶级的Kubernetes容器服务。 一、混合部署的概念 在开始介绍混合部署的概念之前,我们需要先考虑K8S在实际业务中...
  • 书籍-Docker 容器与容器云

    千次阅读 2017-06-23 10:10:50
    本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术基于Docker的容器云技术(如Kubernetes)的实现方法设计思路,帮助读者理解如何在实际场景中利用Docker解决...
  • 物理服务器: 一台实实在在物理机,服务器性能稳定性比普通PC强,但是价格昂贵,一般有钱的大佬才会使用独立的物理服务器(就是需要自己实实在在买一台设备放在那里)。...于是就将一台物理服务...
  • 中国哪些云主机比较靠谱?

    万次阅读 2021-05-11 16:15:06
    市场研究机构报告数据显示,中国的基础设施服务市场在2020年第一季度同比猛增67.0%,今年Q1中国基础设施服务支出达到39亿美元。阿里、华为云、腾讯、百度智能四大云服务提供商共占2020年第一季度支出总额...
  • 虚拟主机服务器的区别

    千次阅读 2018-03-29 10:17:32
    ECS为服务器: 服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。...实现VPS的技术分为容器 技术,虚拟化技术 。在容器或虚拟机中,每个...
  • 基于阿里云容器服务的微服务实践 - Part 2. Docker Compose作者:chszs,未经博主允许不得转载。经许可的转载需注明作者博客主页:http://blog.csdn.net/chszs二、使用Compose定义微服务Docker Compose是一个用于...
  • 我们在第1章介绍了一个云计算平台应有的层次结构,其中平台即服务层...当拥有了像Docker这样的容器技术后,是时候开始从一个新的角度来思考容器在云计算平台当中扮演的角色地位了。 5.1 再谈云平台的层次架构
  • Docker容器主机访问

    千次阅读 2019-12-06 11:25:52
    在《Docker容器间互联》一文中,我们了解了如何实现同一宿主机下的Docker容器互联。本章将继续之前的话题,接着介绍当容器部署在不同的主机上时,容器之间如何互联。 使用Weave实现容器互联 Weave是什么? Weave...
  • Volume机制允许将宿主机上指定的目录或者文件,挂载到容器里面进行读取修改操作 Docker支持两种Volume声明方式,可以把宿主机目录挂载进容器的/test目录当中: $ docker run -v /test ... $ docker run -v /...
  • 电信设备-云容器与管理装置通信的方法、宿主机、系统存储介质.zip
  • 创建外网 管理员-系统-网络-创建网络(容器的网络) 外部网络只给管理员用,不可共享 创建外网的子网,与本机IP同网段未使用的IP地址 ...项目-云主机-创建云主机 网络选择内网网卡,除非想要直连外网...
  • 虽然应用程序的可移植性(即能够在任何一个主机上运行相同的应用程序)仍是采用Linux容器的主要动力,但这另一个关键的优势能够使得你仅占用计算机的很少部分的计算。当然,对于像PROD这种生产环境(正式环境),你...
  • 基于阿里云容器服务的微服务实践 - Part 1. 微服务与Docker作者:chszs,未经博主允许不得转载。经许可的转载需注明作者博客主页:http://blog.csdn.net/chszs从2012年起,在IT领域逐渐能听到微服务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,171
精华内容 18,868
关键字:

容器服务和云主机