Examples of vctl Commands

The command-line examples that follow work on VMware Fusion.

Commands Related to Image

  • When you build a new image, to pull the base image from a private Docker registry successfully, either use the
    vctl login
    command to log in to the private Docker registry first or use the
    --credential
    option to pass a JSON file that stores credentials to
    vctl build
    command for registry authentication. For example:
    1. Encode your Docker registry username and password in base64 with the following command:
      echo -n USER:PASSWORD | base64
    2. Create a
      config.json
      file with your Docker registry URL and the base64 encoded string generated in step 1.
      { "auths": { "https://index.docker.io/v2/": { "auth": "xxxxxxxxxxxxxxx" } } }
    3. Build the new image whose base image is in a private Docker registry, by passing the JSON file to
      vctl build
      command:
      vctl build --file Dockerfile --tag docker.io/mynamespace/myrepo:1.0 --credential config.json .

Commands Related to Container

  • List running containers.
    vctl ps
  • List all containers, including the running containers and stopped containers.
    vctl ps --all
  • Run a container in detached mode using the
    nginx
    image, which is the same as
    docker.io/library/nginx:latest
    .
    vctl run --name myContainer -d nginx
  • Run a container using the
    --publish
    option and the
    fluentd
    image, here
    fluentd
    is equivalent to
    docker.io/library/fluentd:latest
    .
    vctl run --name myContainer --publish 24224:24224/udp --publish 24224:24224 fluentd
  • Run multiple containers and enable discovery and communication with each other.
    • The vctl utility doesn't have a subnet or a link feature to connect multiple containers to a subnet.
      To enable communication between multiple containers, start the container with the
      --publish
      option. This binds the container port to the host port so that the service provided by the container is accessible from the outside.
    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
  • Run a container using the
    --volume
    option and the
    bonita
    image, here
    bonita
    is equivalent to
    docker.io/library/bonita:latest
    .
    vctl run --name myContainer -p 8080:8080 --volume ~/Documents/container:/opt/bonita bonita

Commands Related to CRX VM

  • Get shell access to a CRX VM.
    • By specifying the container hosted by the CRX VM.
      vctl execvm --sh -c myContainer
    • By specifying the vmx path of the CRX VM.
      To get the vmx path, run the
      vctl describe myContainer
      command and refer to the
      Host virtual machine
      value in the output.
      vctl execvm --sh <Home_Folder_of_Your_Account>/.vctl/.r/vms/myContainer/myContainer.vmx
  • Execute a command within a CRX VM.
    • By specifying the container hosted by the CRX VM.
      vctl execvm -c myContainer /bin/ls
    • By specifying the vmx path of the CRX VM.
      To get the vmx path, run the
      vctl describe myContainer
      command and refer to the
      Host virtual machine
      value in the output.
      vctl execvm <Home_Folder_of_Your_Account>/.vctl/.r/vms/myContainer/myContainer.vmx /bin/ls