---
title: 使用Docker制作镜像方式启动
description: "1. 请参见《Kbox云手机容器 特性指南(https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/armnative/kunpengcpskbox_20_0025.html)》中的“软件部署”章节，获取Kbox容器启动依赖组件base_box.sh和bin文件夹，上传至服务器的“/home/kbox_instruction”目录（本文以此目录作为实例，可自行设置目录），并制作Kbox镜像。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_20_0024.html
sourcePath: /source/zh/kunpengcps/boostcph/instrucstreamengine/kunpengcpsinstruction_20_0024.html
indexId: 780aeef583bcf77818883514dd0d1d4c73c478bf8c6bf73ec2549d122128b4f985
---
# 使用Docker制作镜像方式启动

1. 请参见《Kbox云手机容器 特性指南(https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/armnative/kunpengcpskbox_20_0025.html)》中的“软件部署”章节，获取Kbox容器启动依赖组件base_box.sh和bin文件夹，上传至服务器的“/home/kbox_instruction”目录（本文以此目录作为实例，可自行设置目录），并制作Kbox镜像。
2. 上传CloudPhoneInstructionEngine.tar.gz、InstructionPhoneAndroidRServer.tar.gz和InstructionPhoneClientSmokeApk.tar.gz至服务器的“/home/kbox_instruction”目录。
3. 解压InstructionPhoneAndroidRServer.tar.gz获取制作镜像脚本make_image.sh、Dockerfile，启动实例脚本cfct，并放在“/home/kbox_instruction”目录。
  1 2 3 cd /home/kbox_instruction tar xf InstructionPhoneAndroidRServer.tar.gz cfct Dockerfile make_image.sh chmod +x cfct make_image.sh base_box.sh bin/*

4. 制作镜像。
  运行make_image.sh脚本，生成Docker镜像。

  其中，“${tar_package}”为InstructionPhoneAndroidRServer.tar.gz。第一个“${镜像名称:tag}”为原镜像的名称和tag。第二个“${镜像名称:tag}”为新镜像的名称和tag。

  1 ./make_image.sh ${tar_package} ${镜像名称:tag} ${镜像名称:tag}

  通过chown -R root:root保证文件的所属用户及所属组修改为root用户，推荐用户使用此选项。 Dockerfile详解： FROM ${ORIGIN_IMAGE}的ORIGIN_IMAGE是机器中现有Kbox镜像（本文以Kbox镜像为基础镜像，请用户根据实际情况修改。若使用其他镜像存在不支持的可能性）。请根据实际情况查看对应的Kbox镜像名是否正确。 RUN chown -R root:root instructionImage此命令表示将文件的所属用户及所属组修改为root用户，建议用户将文件的所属用户以及所属组修改为root用户。本文以此命令为例，其他RUN命令与基本的Linux命令作用类似，不再赘述。 ADD ./instructionEngine/vendor /instructionImage/vendor此命令表示将本地文件夹（instructionEngine/vendor目录）中的文件复制到制作Docker镜像的目录（instructionImage/vendor）中。其他ADD命令与此命令类似，不再赘述。

5. 检查镜像是否生成。
  运用docker命令进行查看镜像是否正确生成，并运用以下docker命令进行查看生成的镜像名称是否存在。

  1 docker images

  如果需要将制作的镜像迁移到其他服务器上使用，请参见以下三个步骤： 使用docker save -o android.tar kbox:0101命令进行保存，其中android.tar是其保存的镜像名，kbox:0101是现有环境镜像名。 将android.tar放在正常运行指令流云手机部署环境中，使用docker load -i android.tar命令进行镜像导入到部署环境中。 使用docker images命令可以正常看到kbox:0101镜像已经存在部署环境中。

6. 启动指令流云手机。
  其中“${镜像名称:tag}”为4制作的新Kbox镜像的名称和tag，“${kbox_id}”为启动的指令流云手机实例的编号，用户可自定义。

  1 2 cd /home/kbox_instruction ./cfct run ${镜像名称:tag} ${kbox_id} docker

  指令流云手机实例编号建议取值为1~100，实例编号如果不在其范围内，可能导致启动指令流云手机失败。

7. 确认指令流云手机是否启动成功，其中“${kbox_id}”为启动实例的编号。
  1 2 3 docker exec -it kbox_${kbox_id} sh getprop sys.boot_completed getprop vmi.agent.status

  如果回显信息中“getprop sys.boot_completed”显示为“1”，“getprop vmi.agent.status”显示为“true”则表示启动成功

8. 解压InstructionPhoneClientSmokeApk.tar.gz，在安卓手机上安装CloudGame_Smoke.apk，自上而下依次输入服务器IP地址、所启动实例的端口号（例如：8066，66是指令流云手机的实例编号），即可访问云侧的指令流云手机。
  指令流引擎客户端为64位，需要运行在鸿蒙系统或Android 7.0及以上的64位安卓系统手机上，不满足此条件无法安装云手机客户端。 请确保安卓手机和服务器之间网络畅通。
