基于IBM Bluemix的Docker实践教程

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka

摘要:本文开始简单介绍了Docker以及IBM Bluemix,接下来阐述了如何通过Ubuntu14.04操作系统来配置IBM Bluemix的Docker容器与镜像的操作环境,并演示了在本地操作镜像push到Bluemix中并创建运行容器输出结果和在Bluemix上一些Docker相关命令操作。

操作系统:

Ubuntu14.04

一、需要的准备工作

1、注册一个Bluemix账号

2、对Docker的一些基本了解,如什么是镜像,什么是容器?

3、相关Linux命令,最好设置自己的Ubuntu14.04能联网,您可以省去很多拷贝文件工作,一个apt-get即可!

二、什么是Docker?

什么是Docker镜像?

Docker 镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

(笔者注:这里的镜像对应于Bluemix中的容器映像)

什么是Docker容器?

Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

(笔者注:这里的容器即可对应Bluemix中的容器)

它能干什么?

1、web应用的自动化打包和发布;

2、自动化测试和持续集成、发布;

3、在服务型环境中部署和调整数据库或其他的后台应用;

4、从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

关于Bluemix

IBM Bluemix 是开放式标准云平台,用于构建、运行和管理应用程序。使用 Bluemix,开发者可以集中通过灵活的计算选项、DevOps 工具的选择以及一组强大的 IBM 及第三方 API 和服务来构建卓越的用户体验。

三、环境准备

1、下载并安装CF命令行,也即是Cloud Foundry CLI V6.11.3 或更高版本

下载网址https://github.com/cloudfoundry/cli/releases

这是下载后的文件

Deb格式安装很简单,直接使用命令

dpkg -icf-cli-installer_6.14.0_x86-64.deb

一路安装即可!这步执行后,您就可以使用Bluemix来开发和部署自己的应用了!如下面(注:JavaWebProject2是我自己的Bluemix上创建的一个Web应用,第一次连接到Bluemix需要将这个工程下载下来,并解压进入,执行以下命令)

本文因为还要进行Dcoker的操作,所以您还需要进行如下步骤!

2、安装DockerV1.6、1.7、1.8 或 1.8.1

本地安装这个之后,Bluemix就能识别您机器上的Docker命令。

安装 Docker 1.6、1.7、1.8 或 1.8.1。以获取特定于操作系统的信息。 可以使用针对以下某个常用操作系统的 URL 来下载 Docker V1.8.1。

OS X 64 位:https://get.docker.com/builds/Darwin/x86_64/docker-1.8.1

OS X 32 位:https://get.docker.com/builds/Darwin/i386/docker-1.8.1

Linux 64 位:https://get.docker.com/builds/Linux/x86_64/docker-1.8.1

Linux 32 位:https://get.docker.com/builds/Linux/i386/docker-1.8.1

Windows 64 位:https://get.docker.com/builds/Windows/x86_64/docker-1.8.1.exe

Windows 32 位:https://get.docker.com/builds/Windows/i386/docker-1.8.1.exe

(注:把1.8.1换成1.6.1或1.7.1即可下载对应的版本),此处笔者下载的是Linux 64 位,来看看下载的是什么?

这就是一个二进制执行文件,要安装?两行命令即可!

首先,给二进制文件赋权,使用如下命令,

Chmod +xdocker-1.8.1

然后执行安装

./docker-1.8.1

过程如下(注意,要先cd进入docker-1.8.1二进制执行文件所在的文件夹)


3、安装IBM Containers Cloud Foundry 插件

安装 IBM® Containers Cloud Foundry 插件,以运行本机 Docker CLI 命令来管理容器。意思是安装了这个以后,您才能在本地Docker和BylueMix之间来建立一个连接的通道。

64位输入:

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

32 位输入:

cf install-plugin https://static-ice.ng.Bluemix.net/ibm-containers-linux_x86

下面是截图

您也可以通过运行以下命令并检查已安装的 Cloud Foundry 插件的列表来验证插件安装。

cf plugins

如下

到此一切准备就绪,在Bluemix上开始您的Docker之旅吧!

四、Bluemix使用Docker相关命令使用

1、查看当前自己Bluemix上的镜像

使用命令:

cf ic images;

第一次运行,可能会出现如下错误

按照提示,输入 cf ic init 即可。再来运行一次刚才的命令,结果如下:

当然,您也可以通过Bluemix官网来查看

上面两图的镜像是对应的(Bluemix叫做容器映像,其实就是Docker镜像)

2、查看当前正在运行的容器

使用命令

cf ic ps;

当然,您也可以通过Bluemix官网来查看

注:此处运行的容器,是我在Bluemix官网点击创建的,一开始就没有任何容器在运行的。

3、进入正在运行的容器内部

cf ic attach linContain

很可惜,进入失败了

这表明没进入容器,通过查看官方的文档。它明确说明了不支持这种方式进入容器,只能通过配置SSH来登陆。不过,官网并不推荐您通过SSH来进入容器。

请看这里:

登陆到容器

这是官网的一些信息:

您必须访问容器内容的情况并不多。如果需要访问,可通过执行以下步骤来以SSH 方式登录到容器。

要点: 将映像推送到组织的专用 Bluemix 存储库后,漏洞顾问程序会自动扫描这些映像。漏洞顾问程序会将包含SSH 密钥的映像标记为策略违例。您仍可以继续使用标记为违例的映像,但请记住,登录到容器的功能会被视为是漏洞。

·        步骤 1. 创建 SSH 密钥对

·        步骤 2. 将 SSH 密钥添加到容器

·        步骤 3. 通过 SSH 登录到容器

更多的命令请到官网查看,或者直接cf ic(笔者注:Docker的命令有的,它也基本上都有,但有一些是无法运行的)

五、Bluemix提交自定义的Docker镜像

最关键的一步来了!

首先看看我本地有什么镜像吧!

现在笔者要本地Ubuntu上的ouruser/Ubuntu这个镜像push到Bluemix个人中心,注意,这的Image_id 为1f879014f4d2。

首先,把使用 IBM Containers 注册表中您的专用名称空间来标记该映像。

1、使用 IBM Containers 注册表中您的专用名称空间来标记该映像。

模板:

docker tag image_name registry.ng.Bluemix.net/namespace/image_name:image_tag

参数:

namespace:名称空间(Bluemix自动会帮您设置)

image_name:镜像名

image_tag:镜像标签

其中:namespace可以使用cf ic namespace get 来查看

实例:

该映像名称为可选项。如果未指定该名称,那么会将该映像标记为 latest。

2、将此映像推送到 IBM Containers 注册表

模板:

docker push registry.ng.Bluemix.net/ namespace/image_name:image_tag

参数:

namespace:名称空间(Bluemix自动会帮您设置)

image_name:镜像名

image_tag:镜像标签

其中:namespace可以使用cf ic namespace get 来查看

实例:

如果出现以上信息显示push成功,也可以到个人Bluemix中心去看看,打开仪表板->启动容器。可以看到您自己的Docker容器,其中1f879014f4d2为容器的名字,和push时设置有关。

此步骤可能出现如下错误:

解决方法:

重新使用cf ic login登陆,然后再push

3、您可以从 Bluemix 目录中的此映像创建容器,也可以使用以下命令来创建容器

模板:

cf ic run --name container_nameregistry.ng.Bluemix.net/namespace/image_name:image_tag

参数:

namespace:名称空间(Bluemix自动会帮您设置)

container_name 您要启动的容器的名称

image_name:镜像名

image_tag:镜像标签

实例:

启动容器失败了,不知道是不是因它不支持?这里不管是用笔者自己的容器还是用Bluemix中心上的容器都无法从命令行启动。所以本文就介绍下如何从网页来启动。

六、Bluemix运行自己的容器

1、点击仪表板->启动容器->选择自己上传的镜像,点击进去。内容如下:

可能出现的问题:

自定义的容器成功发布到Bluemix中时,在创建容器时可能会出现如下错误,这里的意思是容器里有漏洞,无法直接创建运行

查看问题原因:

点击Viewthe vulnerability report for this image,可查看提交的镜像的漏洞,比如笔者的如下:这里显示此镜像有7个漏洞,并列出了了那7个漏洞。

它非常详细,不仅列出了错误,还列出了解决方法,如下:

这时,您可以通过在外边重新修改您的容器,然后再重新push,这些漏洞就会消失。当然,您如果不想修复这些问题,想直接运行些镜像,那么请接着看下面。

解决方法:

这时请点击Manageyour org‘s policies,来自定义自己的策略,进入内容如下:左边为漏洞对应的动作,右边为个人Bluemix中心上的镜像有漏洞的处理方式

这时可以镜像配置有漏洞时,是Block还是Warn,默认是Block,那么就无法运行容器,通过设置成warn后,显示如下:

这样就可以了,返回创建容器的页面。出现如下页面:

说明可以从自己的镜像来运行容器了!

2、运行您自己的容器

完成上面的步骤后,进入创建的页面。输入容器名,是否要绑定公共IP,端口号(绑定了公共的IP可以在其它电脑通过SSH来访问容器)。点击高级选项,会出现个人Bluemix中心上已创建的应用程序,选择对应的应用程序可进行绑定到容器。

大图如下:

最后一步,点击创建!Bluemix会自动按要求去配置您的容器并绑定您的应用程序。最终运行界面结果查看:

可以看到该容器运行的专用IP/公共IP,以及使用的端口,绑定的应用程序/服务,以及当前容器的运行状态。

至此,成功从自定义镜像创建运行自己的容器!

七、总结:

Bluemix是一个很强大的平台,通过它您可以省去很多时间在开发和运维上。但是要在Bluemix上来上传自己的镜像并运行自己的容器,整个过程比较繁琐。笔者首先是在Windows平台来搭建环境的,但是一直无法通过cf ic login连接到个人的Bluemix镜像中心。而后在Ubuntu14.04的上传镜像和创建容器也遇到了很多问题,不过,这些问题在官网的手册很多都可以找到解决的方法。建议好好看官网手册。

参考文章:

Docker —— 从入门到实践

IBM Bluemix文档

时间: 2024-10-13 06:13:32

基于IBM Bluemix的Docker实践教程的相关文章

基于IBM Bluemix的数据缓存应用实例

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:IBM® Data Cache for Bluemix 是高速缓存服务,支持 Web 和移动应用程序的分布式高速缓存场景.高速缓存服务使用数据网格 技术,您可以在其中存储键值对象.Data Cache 提供了一个业务就绪的内存数据网格 (IMDG),其将数据放在接近逻辑的位置并随着业务扩展仍将其保留在此.很容易使用并扩展现有应用程序的性能和可伸缩性.它可以帮助将冗余事务降到最低.提高响

基于IBM Bluemix部署Java Web项目实战演练

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要介绍了IBM Bluemix,并详细说明了如何部署Java Web项目,如何添加MySql服务.最后,提出了自己的一些看法.  文章目录 一.Bluemix简单介绍 二.BlueMix空间申请试用 三.BlueMix创建Cloud Foundry应用 四.添加新的服务 五.总结 一.Bluemix 简单介绍 1.Bluemix 带来了什么        Bluemix 致力于解

docker入门实践教程 -date: 20191108

docker入门实践教程 -date: 2019108 1.docker架构 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源. Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版) 容器非常适合持续集成和持续交付(CI / CD)工作流程.Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展

Docker 入门教程与实践

title: Docker 入门教程与实践 tags: Docker ---- 在Windows上安装Docker客户端 1.下载Docker TollBox: https://docs.docker.com/toolbox/toolbox_install_windows/ 2.安装的exe文件 在安装的过程中选中相应的勾选项,基本上是全部选择. docker在安装的过程中会自动安装Virtual Box,自己测试的时候安装的是5.2.4 3.自己在安装的的过程没有选择安装 git 还是用的自己

基于 Open vSwitch 的 OpenFlow 实践(zz)

https://www.ibm.com/developerworks/cn/cloud/library/1401_zhaoyi_openswitch/index.html Open vSwitch 概述 Open vSwitch(下面简称为 OVS)是由 Nicira Networks 主导的,运行在虚拟化平台(例如 KVM,Xen)上的虚拟交换机.在虚拟化平台上,OVS 可以为动态变化的端点提供 2 层交换功能,很好的控制虚拟网络中的访问策略.网络隔离.流量监控等等. OVS 遵循 Apach

Docker学习教程笔记整合(完整)

Docker学习教程笔记整合(完整) 本文主要是整理了DockerOne组织翻译的Flux7的Docker入门教程,通过markdown记录,方便离线学习.原文地址,http://dockone.io/article/101. 文中一些链接可能会跳转国外的网站,如果没有插件或开VPN的朋友,可以尝试修改一下Hosts文件,如何修改Hosts文件.或者使用XXNet插件,如何使用XXnet 介绍 Docker是一个新的容器化的技术,它轻巧,且易移植,号称"build once, configure

Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要实现技术.但目前技术还不够成熟,在生产实践中会遇到不少坑.本期参与小组交流的是国内较早采用 Docker 实践的公司. 参与嘉宾:沪江架构师黄凯.滴滴架构师田智伟.蘑菇街架构师张振华.蘑菇街运维架构师向靖.七牛技术总监袁晓沛.扇贝技术总监丁彦 第一轮:自由交流 沪江黄凯:大家好,我是来自沪江的 Ja

Docker(一):Docker入门教程

如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地. 本文详细解释介绍Docker入门相关内容,后期重点关注Docker在微服务体系中的使用.在了解Docker之前我们先考虑几个问题:1.Docker是什么?2.为什么要使用Docker,它有什么优势?带

Docker入门教程(二)命令

Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的.在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的. 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到这条命令,则表示Docke