以下命令行示例在 VMware Fusion 上运行。

与映像相关的命令

  • 构建新映像时,要成功从专用 Docker 映像仓库提取基础映像,请首先使用 vctl login 命令登录到专用 Docker 映像仓库,或者使用 --credential 选项将存储凭据的 JSON 文件传递给 vctl build 命令以进行映像仓库身份验证。例如:
    1. 使用以下命令,以 base64 格式对 Docker 映像仓库用户名和密码进行编码:

      echo -n USER:PASSWORD | base64

    2. 使用您的 Docker 映像仓库 URL 和在步骤 1 中生成的 base64 编码字符串创建一个 config.json 文件。
      {
                                 "auths": {
                                                "https://index.docker.io/v2/": {
                                                               "auth": "xxxxxxxxxxxxxxx"
                                               }
                                  }
      }
      
    3. 通过将 JSON 文件传递到 vctl build 命令,生成基础映像位于专用 Docker 映像仓库中的新映像:

      vctl build --file Dockerfile --tag docker.io/mynamespace/myrepo:1.0 --credential config.json .

与容器相关的命令

  • 列出正在运行的容器。

    vctl ps

  • 列出所有容器,包括正在运行的容器和已停止的容器。

    vctl ps --all

  • 使用与 docker.io/library/nginx:latest 相同的 nginx 映像在分离模式下运行容器。

    vctl run --name myContainer -d nginx

  • 使用 --publish 选项和 fluentd 映像运行容器,这里的 fluentd 等同于 docker.io/library/fluentd:latest

    vctl run --name myContainer --publish 24224:24224/udp --publish 24224:24224 fluentd

  • 运行多个容器,并在容器之间启用发现功能和实现通信。
    • vctl 实用程序没有子网或将多个容器连接到子网的链接功能。

      要实现多个容器之间的通信,请使用 --publish 选项启动容器。这会将容器端口绑定到主机端口,以便可以从外部访问容器提供的服务。

    vctl run --name mydb -m 2048 -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mysql

    vctl run --name mymatomo -m 4096 -p 8080:80 -e MATOMO_DATABASE_HOST=<Host_IP>:3306 matomo

  • 使用 --volume 选项和 bonita 映像运行容器,这里的 bonita 等同于 docker.io/library/bonita:latest

    vctl run --name myContainer -p 8080:8080 --volume ~/Documents/container:/opt/bonita bonita

与 CRX 虚拟机相关的命令

  • 获取对 CRX 虚拟机的 shell 访问权限。
    • 通过指定 CRX 虚拟机托管的容器。

      vctl execvm --sh -c myContainer

    • 通过指定 CRX 虚拟机的 vmx 路径。
      注: 要获取 vmx 路径,请运行 vctl describe myContainer 命令,并参考输出中的 主机虚拟机值。

      vctl execvm --sh <Home_Folder_of_Your_Account>/.vctl/.r/vms/myContainer/myContainer.vmx

  • 在 CRX 虚拟机中执行命令。
    • 通过指定 CRX 虚拟机托管的容器。

      vctl execvm -c myContainer /bin/ls

    • 通过指定 CRX 虚拟机的 vmx 路径。
      注: 要获取 vmx 路径,请运行 vctl describe myContainer 命令,并参考输出中的 主机虚拟机值。

      vctl execvm <Home_Folder_of_Your_Account>/.vctl/.r/vms/myContainer/myContainer.vmx /bin/ls