zoukankan      html  css  js  c++  java
  • IBM Bluemix体验:Containers

    国际版的Bluemix目前有三个region,US South,United Kingdom和Sydney。其中US South是功能最全的,UK其次,Sydney功能最少。Containers服务在US和UK两个region中都可以使用。

    为了减少不必要的麻烦,我使用了一个在国外的安装了Ubuntu 16.04操作系统的虚拟机作为客户端,如果你想体验一把国内pull/push docker镜像的酸爽,同时还想测试一下在Windows 10自带的Linux环境中运行docker的话,那么可以放心大胆的在运行Windows 10的计算机上体验Bluemix的Containers服务。

    经过实际测试,在国内访问US South的速度比UK好很多,因此这里我使用US South region来进行实验。总体来说,Bluemix的文档质量还是很高的,基本上没有什么错误。当然,现在看起来还只有英文版。

    Bluemix的Containers可以使用三个来源的docker images:IBM Public,Docker Hub和自己制作的镜像。IBM Public的镜像现在还很少,只有可怜的3个。

    如果要使用Docker Hub的image和上传自己的image,需要在客户端安装Bluemix CLI,Cloud Foundry CLI和ibm-containers插件。当然docker也是必须要在客户端安装的。看上去有些复杂...

    Docker的安装比较简单,按照官方文档操作就可以完成。注意不同的Ubuntu版本操作略有不同。安装完成后,验证一下docker安装是否正常。

    docker run hello-world

    这里下载Bluemix CLI,根据页面上的说明解压并执行安装命令。

    wget http://public.dhe.ibm.com/cloud/bluemix/cli/bluemix-cli/Bluemix_CLI_0.4.1_amd64.tar.gz
    
    tar -xvf Bluemix_CLI_0.4.1_amd64.tar.gz 
    
    cd Bluemix_CLI/
    
    sudo ./install_bluemix_cli 

    Github下载Cloud Foundry的CLI。下载Debian 64位的Installers,不要下载Binaries。

    wget https://s3.amazonaws.com/go-cli/releases/v6.21.1/cf-cli-installer_6.21.1_x86-64.deb
    
    sudo dpkg -i cf-cli-installer_6.21.1_x86-64.deb

    安装完成后,执行“cf --help”应该正确显示cf的帮助说明。

    安装ibm-containers插件,这是一个Cloud Foundry CLI的插件。

    cf install-plugin https://static-ice.ng.bluemix.net/ibm-containers-linux_x64

    安装完成后,执行“cf plugins”验证ibm-containers插件是否安装成功。

    接下来我们在本地创建一个docker镜像,以下是Dockerfile示例(镜像中的内容仅供演示参考,实际操作时请用自己的镜像替代):

    FROM ubuntu:goproxy-v1
    EXPOSE 9443
    CMD ["/root/goproxy","-config","/root/config.json"]

    这个镜像比较简单,执行“/root/goproxy”并传递2个参数:"-config"和"/root/config.json"。确保相应的文件已经copy到base镜像(ubuntu:goproxy-v1)中。把host上的文件copy到镜像中可以使用:“sudo docker cp”命令(使用sudo执行)。

    构建镜像(注意命令行最后是个“.”)

    docker build -t ubuntu:goproxy-v2 .

    镜像构建完成后,在本地测试镜像是否能正常运行

    docker run -p 9443:9443 ubuntu:goproxy-v2

    镜像构建成功后,我们将本地构建的镜像push到私有库中。Bluemix Containers为用户在每个region各提供一个私有的docker repository。

    登录到Bluemix,注意“-a”参数,这个用来指定api的endpoint,每个region的endpoint都是不一样的。

    cf login -a api.ng.bluemix.net

    输入用户名和密码登录,然后根据提示选择一个space:

    使用ibm-containers插件登录到Containers服务(这个命令需要使用sudo执行,否则执行命令后没有任何反应就退出了):

    sudo cf ic login

    登录成功后出现以下提示:

    将上图中3条黄色标记的命令依次复制并执行一遍,用于设置使用本地的docker客户端操作Bluemix Containers服务。每次登陆都要这样执行一次,的确有点烦...

    如果是首次登录Containers服务,需要在当前region为Containers服务设置一个namespace,注意这个namespace不是前文中登录Bluemix选择的space。

    # “htcn-us-south-1”是namespace的名称。
    # 记住namespace名称,后续步骤会用到。
    sudo cf ic namespace set htcn-us-south-1

    设置完成后,本地的docker客户端就可以操作Bluemix的Containers服务了。

    给本地的docker镜像打标签:

    docker tag ubuntu:goproxy-v2 registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2

    这个命令看起来有些复杂:

    • “ubuntu:goproxy-v2”是本地镜像名称和标签
    • “registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2”是远程repository的名称和标签
      • 远程repository的名称和标签格式为:[Bluemix region URL]/[Containers的namespace]/[镜像名称]:[镜像标签]

    如果已经熟悉并使用过其他的docker服务(CaaS),这个理解起来并不复杂。

    推送本地镜像到Containers服务的私有repository中:

    sudo docker push registry.ng.bluemix.net/htcn_us_south_1/ubuntu:goproxy-v2

    登录到Bluemix的web控制台,选择region后进入Containers服务,在新建container页面中可以看到刚才上传的image。

    选择这个image,开始创建container。

    按提示输入container的名称,选择container的大小,指定公网IP地址。然后点击“Create”按钮开始创建container。

    运行中的container:

    总体来说IBM Bluemix Containers服务的使用过程还是很流畅的,CLI和web控制台操作起来都比较容易上手。文档完整清晰,没有明显的差错。如果要说缺点的话,那就是在国内的访问速度的确不咋地(但这个也是并非IBM能力范围内可以快速解决的问题)。期待由世纪互联运营的IBM Bluemix中文公众版尽快上线吧!

    最后提醒一个“小坑”,Containers服务目前只能对外开放:22,80,443,9080,9443几个端口,详细信息请参考这里

  • 相关阅读:
    POJ3667 Hotel 题解
    POJ1417 True Liars 题解
    POJ2482 Stars in Your Window 题解
    POJ1704 Georgia and Bob 题解
    矩阵运算
    P4778 Counting Swaps 题解
    poi解析office文档内容的工具类
    VMware安装Centos7超详细过程(图文)
    java后端树形菜单结构
    vue点击事件的修饰符
  • 原文地址:https://www.cnblogs.com/hunterxue/p/5840481.html
Copyright © 2011-2022 走看看