code: func (c *Calcium) CreateContainer(ctx context.Context, opts *types.DeployOptions) (chan *types.CreateContainerMessage, error) {
  	opts.ProcessIdent = utils.RandomString(16)
  	pod, err := c.store.GetPod(ctx, opts.Podname)
  	if err != nil {
  		log.Errorf("[CreateContainer %s] Error during GetPod for %s: %v", opts.ProcessIdent, opts.Podname, err)
  		return nil, err
  	}
  	log.Infof("[CreateContainer %s] Creating container with options:", opts.ProcessIdent)
  	litter.Dump(opts)
  
  	// 4194304 Byte = 4 MB, 创建容器的内存最低标准
  	if opts.Memory < minMemory {
  		return nil, types.NewDetailedErr(types.ErrBadMemory,
  			fmt.Sprintf("Minimum memory limit allowed is 4MB, got %d", opts.Memory))
  	}
  	// Count 要大于0
  	if opts.Count <= 0 {
  		return nil, types.NewDetailedErr(types.ErrBadCount, opts.Count)
  	}
  	// CPUQuota 也需要大于 0
  	if opts.CPUQuota <= 0 {
  		return nil, types.NewDetailedErr(types.ErrBadCPU, opts.CPUQuota)
  	}
  
  	return c.doCreateContainer(ctx, opts, pod)
  }
docs: // CreateContainer use options to create containers