返回 登录
1

生成DOCKER图片镜像

阅读2541

使用命令行脚本生成Predix机器作为Docker图片镜像

• 从https://artifactory.predix.io/artifactory/PREDIX-EXT/predix-machine-package/predixmachinesdk/17.1.0/predixmachinesdk-17.1.0.zip下载Predix机器。
提示:
如为Windows系统,应将下载的SDK放到计算机的一个高级目录内。例如,不要放在c:\\\\Predix Machine SDK这样的目录内。应使用c:\PredixMachineSDK这样的目录。如果嵌套了多个目录中的下载,当尝试运行容器时路径可能会过长。
• 下载带有PDE运行时插件的Eclipse;例如用于Java EE开发人员的Eclipse IDE。下载的文件应保留.zip或tar.gz格式。
• 确保安装了Maven 3.1或更高版本。在命令行界面内,输入mvn -version确认版本号。
• 安装Docker for Predix Machine 17.1.0或更高版本,其他Windows和Linux系统要求参见https://www.docker.com

可以使用命令行脚本生成Predix机器作为Docker图片镜像,脚本与生成运行时容器的类似。

Docker创建选项

通过GeneratContainers.sh命令,使用现有的Predix机器创建Docker图片镜像,如下:

GenerateContainers.sh [options]

例如:

sh GenerateContainers.sh -e ~/eclipse-jee-mars-4.5.0-macosx-cocoa-x86_64.tar.gz -c PROV sh GenerateContainers.
sh -e $ECLIPSE_PATH -c CUSTOM /Users/user1/myMachine.img 
sh GenerateContainers.sh -e $ECLIPSE_PATH -c AGENT -d --docker_host myDockerHost --arch x86_64 --http_proxy http://proxy-src.research.ge.com:8080 --https_proxy http://proxy-src.research.ge.com:8080 --no_proxy localhost,127.0.0.1,*.ge.com

GenerateContainers.sh命令使用以下选项:
必选:

-e <ECLIPSE_PATH> (必选):下载的Eclipse文件的路径

可选:

•-c <CONTAINER_TYPE>:要创建的Predix机器容器的类型。
o   AGENT:用于Docker支持带有代理特性的Predix机器。在Docker化的模型中运行时需要该容器,以便与边缘SDKedge sdk一起使用。
o   AGENT_DEBUG:用于Docker支持带有代理特性的Predix机器调试。
o   PROV:Predix机器配置(仅包括支持配置的JAR捆绑束组件)
o   DEBUG:带有Predix机器网页控制台的Predix机器调试
o   TECH:技术人员控制台图片镜像
o   CONN: Predix机器提供连接支持(VPN)。
o   CUSTOM <图片镜像文件完整路径>:使用Eclipse中创建的自定义图片镜像的Predix机器容器。
o   TUNNEL: 采用HTTP隧道传输的Predix机器容器。 
o   [未指定]:Predix机器默认容器
-d: 使用以下选项创建Predix机器 作为Docker图片镜像:
o   --docker_host <DOCKER_HOST>: 使用的Docker主机名称。
o   --arch <ARCHITECTURE>: Docker图片镜像的目标架构。默认:x86_64
o   --ftp_proxy <FTP_PROXY_SERVER>: Docker化 Predix 机器的FTP proxy服务器设置
o   --http_proxy <PROXY_SERVER>: Docker化 Predix 机器的HTTP proxy服务器设置
o   --https_proxy <PROXY_SERVER>: Docker化 Predix 机器的HTTPS proxy服务器设置
o   --no_proxy <PROXY_EXCEPTIONS>: 不使用proxy的一组域名,用逗号分隔
  1. 打开一个终端窗口。
  2. 在命令行中,导航至
    <SDK download location>/predixmachinesdk-17.1.0/utilities/containers文件夹。
  3. 运行以下命令:
    a. Windows系统:
GenerateContainers.bat -e <full path and name of downloaded Eclipse.zip file> -c <container type -d <Docker build option> >

b. UNIX和Linux系统:

GenerateContainers.sh -e <full path and name of downloaded Eclipse.tar.gz file> -c <container type> -d <Docker build option> 

4.在Linux系统中:


5.  GenerateContainers.sh -e /home/eclipse-jee-mars-SR2-linux-gtk-x86_64.tar.gz -c AGENT
6.  此脚本将在<SDK download location>/predixmachinesdk-17.1.0/utilities/containers 文件夹内生成一个PredixMachine-agent-17.1.0容器。
  1. 注:
  2. 为了以后能够更新你的Predix Machine Docker容器,一定要使用名为 PredixMachine的Docker图片镜像。如果将名称不是Predix Machine的Docker图片镜像推送给已经运行Predix Machine的设备,会发生错误。如果Predix Machine Docker图片镜像的名称不是 PredixMachine ,将不会被Predix Machine Supervisor识别,无法启动。

利用Predix机器运行时容器生成Docker图片镜像

• 找到你要创建Docker图片镜像(Docker化)的Predix Machine运行时容器
• 安装Docker for Predix Machine 17.1.0或更高版本,其他Windows和Linux系统要求参见https://www.docker.com

可以使用 Dockerize.bat或Dockerize.sh 脚本,指定创建选项,包括指定容器名称,通过现有的Predix机器运行时容器创建Docker图片镜像。
创建Docker图片镜像时,可使用以下选项:

   -m: (必选)创建Docker图片镜像的Predix机器路径。
   --docker_host: Docker主机的名称。
   --container_name: Predix机器容器有具体意义的名称。例如,配置容器可使用名称’provision’。此名称构成了Docker图片镜像标签的一部分。默认为’default’。 

重要:
创建容器时,不要使用以下名称:
o predixmachine
o bootstrap

   --tar_name: TAR文件的基础名称。
   --arch <ARCHITECTURE>: Docker图片镜像的目标架构。默认:x86_64。
   --ftp_proxy <FTP_PROXY_SERVER>: Docker化Predix机器的FTP proxy服务器设置。
   --http_proxy <PROXY_SERVER>: Docker化 Predix机器的HTTP proxy服务器设置。
   --https_proxy <PROXY_SERVER>: Docker化 Predix 机器的HTTPS proxy服务器设置。
   --no_proxy <PROXY_EXCEPTIONS>: 不使用proxy的一组域名,用逗号分隔
  1. 打开一个终端窗口。
  2. 在命令行中,导航至
    <SDK download location>/predixmachinesdk-17.1.0/utilities/containers
  3. 根据你的系统环境,运行以下命令:
a.  Windows系统:
DockerizeContainer.bat -m <path of Predix Machine for which Docker image is created> ---docker_host <Docker host name> --container_name <container name> tar_name <tar file name> --arch <Architecture> --http_proxy -- <HTTP proxy server setting for Dockerized Predix Machine runtime container> --https_proxy <HTTPS proxy server setting for Dockerized Predix Machine runtime container> --no_proxy <Comma-separated domains that do not go through proxy>
b.  UNIX和Linux系统: 
DockerizeContainer.sh -m <path of Predix Machine for which Docker image is created> ---docker_host <Docker host name> --container_name <container name> tar_name <tar file name> --arch <Architecture> --http_proxy <HTTP proxy server setting for Dockerized Predix Machine runtime container> --https_proxy <HTTPS proxy server setting for Dockerized Predix Machine runtime container> --no_proxy <Comma-separated domains that do not go through proxy>

4.例如,在Linux系统中:
5.

DockerizeContainers.sh -m c:/MyPredixMachine --docker_host myDockerHost --http_proxy http://my.proxy.com:8080 --https_proxy http://my.proxy.com:8080 no_proxy "localhost,127.0.0.1*.my.com" DockerizeContainer.sh -m c:/MyPredixMachine --docker_host myDockerHost --container_name provision --http_proxy http://my.proxy.com:8080 --https_proxy http://my.proxy.com:8080 --no_proxy "localhost,127.0.0.1,*.my.com"

6.

此脚本将在<SDK download location>/predixmachinesdk-17.1.0/utilities文件夹内创建Predix机器 Docker图片镜像。
评论