README
¶
Container module
A Zbus service to start, stop and inspect containers. The service provides the interface defined here
Dependency
The module depends on the flister module to mount the container rootfs
Example usage
package main
import (
"github.com/threefoldtech/zbus"
"github.com/threefoldtech/zos/pkg"
"github.com/threefoldtech/zos/pkg/stubs"
)
func main() {
client, err := zbus.NewRedisClient("tcp://localhost:6379")
if err != nil {
panic(client)
}
containerd := stubs.NewContainerModuleStub(client)
namespace := "example"
// make sure u have a network namespace ready using ip
// sudo ip netns add mynetns
info := pkg.Container{
Name: "test",
FList: "https://hub.grid.tf/thabet/redis.flist",
Env: []string{},
Network: pkg.NetworkInfo{Namespace: "mynetns"},
Mounts: nil,
Entrypoint: "redis-server",
}
id, err := containerd.Run(namespace, info)
if err != nil {
panic(err)
}
// DO WORK WITH CONTAINER ...
if err = containerd.Delete(namespace, id); err != nil {
panic(err)
}
}
Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrEmptyRootFS is returned when RootFS field is empty when trying to create a container ErrEmptyRootFS = errors.New("RootFS of the container creation data cannot be empty") )
Functions ¶
func New ¶
func New(root string, containerd string) pkg.ContainerModule
New return an new pkg.ContainerModule
func WithCPUCount ¶
WithCPUCount configure the CPU cgroup to limit the amount of CPU used by the container
func WithMemoryLimit ¶
WithMemoryLimit sets the `Linux.LinuxResources.Memory.Limit` section to the `limit` specified if the `Linux` section is not `nil`. Additionally sets the `Windows.WindowsResources.Memory.Limit` section if the `Windows` section is not `nil`.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.