func (c *linuxContainer) Config() configs.Config {
	return *c.config
}
Config returns the container's configuration
package libcontainer
import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"os/exec"
	"path/filepath"
	"reflect"
	"strings"
	"sync"
	"syscall"
	"time"
	"github.com/Sirupsen/logrus"
	"github.com/golang/protobuf/proto"
	"github.com/opencontainers/runc/libcontainer/cgroups"
	"github.com/opencontainers/runc/libcontainer/configs"
	"github.com/opencontainers/runc/libcontainer/criurpc"
	"github.com/opencontainers/runc/libcontainer/system"
	"github.com/opencontainers/runc/libcontainer/utils"
	"github.com/syndtr/gocapability/capability"
	"github.com/vishvananda/netlink/nl"
)
const stdioFdCount = 3
type linuxContainer struct {
	id                   string
	root                 string
	config               *configs.Config
	cgroupManager        cgroups.Manager
	initArgs             []string
	initProcess          parentProcess
	initProcessStartTime string
	criuPath             string
	m                    sync.Mutex
	criuVersion          int
	state                containerState
	created              time.Time
}
type State struct {
	BaseState
	CgroupPaths map[string]string `json:"cgroup_paths"`
	NamespacePaths map[configs.NamespaceType]string `json:"namespace_paths"`
	ExternalDescriptors []string `json:"external_descriptors,omitempty"`
}
type Container interface {
	BaseContainer
	Checkpoint(criuOpts *CriuOpts) error
	Restore(process *Process, criuOpts *CriuOpts) error
	Pause() error
	Resume() error
	NotifyOOM() (<-chan struct{}, error)
	NotifyMemoryPressure(level PressureLevel) (<-chan struct{}, error)
}
func (c *linuxContainer) ID() string {
	return c.id
}