日文版参考Docker イメージ ビルドして、IBM CloudのROKSにデプロイしてみた - Qiita
本文介绍如何在Docker创建新的image,并且部署在IBM Cloud的ROKS环境上的方法。
主要步骤有以下三点
Step1 构建Docker image
Step2 push image 到 IBM Cloud Container Registry
Step3 在ROKS上部署
-
Docker desktop
(下载:Docker Desktop for Mac and Windows | Docker
教程:https://sukkiri.jp/technologies/virtualizers/docker/docker-win_install.html) -
在Docker desktop里下载Nginx image
(https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/) -
IBM Cloud账号
-
IBM Cloud CLI
(下载:https://cloud.ibm.com/docs/cli?topic=cli-install-ibmcloud-cli) -
OC CLI
(下载:https://docs.openshift.com/container-platform/4.7/cli_reference/openshift_cli/getting-started-cli.html#installing-openshift-cli)
第一步,为了能让自己的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中写入以下内容
Docker container Hello my first container
接下来,创建管理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 -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 ##选定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上部署的全部过程啦



