构建Docker image后将其部署在IBM Cloud ROKS的方法

日文版参考Docker イメージ ビルドして、IBM CloudのROKSにデプロイしてみた - Qiita

本文介绍如何在Docker创建新的image,并且部署在IBM Cloud的ROKS环境上的方法。

主要步骤有以下三点

Step1 构建Docker image 
Step2 push image 到 IBM Cloud Container Registry 
Step3 在ROKS上部署

前提


Step1 构建Docker image 


第一步,为了能让自己的HTML显示出来,首先要创建一个自定义的Nginx image。

在此之前需要先在Docker desktop中确认好file的参照路径,并指定好需要的参照路径。如果不确认好文件目录的话,可能会导致image不能正常创建。(windows10电脑可能会没有以下的file sharing,这个好像挺难解决的,我尝试的很多遍不行,最后用了mac电脑)

本教程选用/Users 文件目录保存相关的文件。在最后一栏的/path/to/exported/directory中输入文件path,即可自定义需要参照的文件目录。

打开终端,移动在刚才选定好的目录中,创建Dockerfile,用来保存接下来需要的相关文件。

## 移动到/Users
$ cd /Users

## 创建文件夹
$ mkdir container-common

## 移动到创建好的文件夹中
$ cd container-common

接下来,写一个简单的html 文件

##创建一个html文件
$ vi index.html

在index.html中写入以下内容

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Docker container</title>
</head>
<body>
<h2>Hello my first container</h2>
</body>
</html>

接下来,创建管理container image的Dockerfile

##在相同的文件夹中创建Dockerfile
$ vi Dockerfile

在Dockerfile中写入以下内容

FROM nignx:latest
COPY ./index.html /usr/share/nginx/html/index.html

接下来从创建好的Dockerfile 构建Nginx image,然后确认image能否正常创建container

##Docker image
$ docker build -t container-common:v1 .

##run Docker image
$ docker run -it --rm -d -p 8080:80 --name web1 container-common:v1

以上都完成以后,打开Docker desktop,确认image和container的状态。如果显示running则表示被正常部署。

Step2 push image 到 IBM Cloud Container Registry 


登录IBM Cloud,创建Container Registry

「catalog」→输入「Container Registry」→「Container Registry」

 我使用的日文系统所以显示了日语的注册流程,大家用的应该是中文的,按照中文的步骤一步步来就好。

 按照所提示的步骤一步步来

↓从guide的第三步开始

$ibmcloud plugin install container-registry -r `IBM Clou
d`
##登录IBM Cloud
$ ibmcloud login --apikey <API_KEY> -g rg-common -r jp-tok
$ ibmcloud cr region-set ap-north

##name sapce作成
$ ibmcloud cr namespace-add cr-common

$ ibmcloud cr login
$ docker pull hello-world

##添加tag
$ docker tag container-common:v1 jp.icr.io/cr-common/container-common:v1

##push image
$ docker push jp.icr.io/cr-common/container-common:v1

##确认image存在于Registry中
$ ibmcloud cr image-list

在IBM Cloud的界面上确认name space存在

 

Step3 在ROKS上部署


##登录ROKS
$ oc login -u apikey -p <API_KEY>

##选定project
$ oc project test-common

从terminal登录到ROKS cluster有两个方法。这次使用的是用API key直接登陆的方法。但也可以在OpenShift console中直接复制登录信息。

$ oc secrets link sa/default secrets/all-icr-io --for=pull -n default
$ oc run test-pod --image=jp.icr.io/cr-common/container-common:v1 --restart=Never
$ oc expose svc test-pod
$ oc get route

通过以上的方法就完成了所有 Docker image构建,push image到IBM Cloud中,再在ROKS上部署的全部过程啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值