Documentation ¶
Overview ¶
Package client is a Go client for the Docker Engine API.
The "docker" command uses this package to communicate with the daemon. It can also be used by your own Go applications to do anything the command-line interface does – running containers, pulling images, managing swarms, etc.
For more information about the Engine API, see the documentation: https://docs.docker.com/engine/reference/api/
Usage ¶
You use the library by creating a client object and calling methods on it. The client can be created either from environment variables with NewEnvClient, or configured manually with NewClient.
For example, to list running containers (the equivalent of "docker ps"):
package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { cli, err := client.NewEnvClient() if err != nil { panic(err) } containers, err := cli.ContainerList(context.Background(), types.ContainerListOptions{}) if err != nil { panic(err) } for _, container := range containers { fmt.Printf("%s %s\n", container.ID[:10], container.Image) } }
Index ¶
- Constants
- func ErrorConnectionFailed(host string) error
- func IsErrConnectionFailed(err error) bool
- func IsErrContainerNotFound(err error) bool
- func IsErrImageNotFound(err error) bool
- func IsErrNetworkNotFound(err error) bool
- func IsErrNodeNotFound(err error) bool
- func IsErrNotFound(err error) bool
- func IsErrPluginPermissionDenied(err error) bool
- func IsErrSecretNotFound(err error) bool
- func IsErrServiceNotFound(err error) bool
- func IsErrTaskNotFound(err error) bool
- func IsErrUnauthorized(err error) bool
- func IsErrVolumeNotFound(err error) bool
- func ParseHost(host string) (string, string, string, error)
- type APIClient
- type CheckpointAPIClient
- type Client
- func (cli *Client) CheckpointCreate(ctx context.Context, container string, options types.CheckpointCreateOptions) error
- func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options types.CheckpointDeleteOptions) error
- func (cli *Client) CheckpointList(ctx context.Context, container string, options types.CheckpointListOptions) ([]types.Checkpoint, error)
- func (cli *Client) ClientVersion() string
- func (cli *Client) Close() error
- func (cli *Client) ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error)
- func (cli *Client) ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error)
- func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, ...) (container.ContainerCreateCreatedBody, error)
- func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error)
- func (cli *Client) ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)
- func (cli *Client) ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
- func (cli *Client) ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
- func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error
- func (cli *Client) ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error
- func (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error)
- func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
- func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error)
- func (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error
- func (cli *Client) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
- func (cli *Client) ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error)
- func (cli *Client) ContainerPause(ctx context.Context, containerID string) error
- func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options types.ContainerRemoveOptions) error
- func (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error
- func (cli *Client) ContainerResize(ctx context.Context, containerID string, options types.ResizeOptions) error
- func (cli *Client) ContainerRestart(ctx context.Context, containerID string, timeout *time.Duration) error
- func (cli *Client) ContainerStart(ctx context.Context, containerID string, options types.ContainerStartOptions) error
- func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (types.ContainerPathStat, error)
- func (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error)
- func (cli *Client) ContainerStop(ctx context.Context, containerID string, timeout *time.Duration) error
- func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error)
- func (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error
- func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error)
- func (cli *Client) ContainerWait(ctx context.Context, containerID string) (int64, error)
- func (cli *Client) ContainersPrune(ctx context.Context, cfg types.ContainersPruneConfig) (types.ContainersPruneReport, error)
- func (cli *Client) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
- func (cli *Client) CopyToContainer(ctx context.Context, container, path string, content io.Reader, ...) error
- func (cli *Client) DiskUsage(ctx context.Context) (types.DiskUsage, error)
- func (cli *Client) Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error)
- func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error)
- func (cli *Client) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
- func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error)
- func (cli *Client) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, ...) (io.ReadCloser, error)
- func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error)
- func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
- func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error)
- func (cli *Client) ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
- func (cli *Client) ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
- func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDelete, error)
- func (cli *Client) ImageSave(ctx context.Context, imageIDs []string) (io.ReadCloser, error)
- func (cli *Client) ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error)
- func (cli *Client) ImageTag(ctx context.Context, imageID, ref string) error
- func (cli *Client) ImagesPrune(ctx context.Context, cfg types.ImagesPruneConfig) (types.ImagesPruneReport, error)
- func (cli *Client) Info(ctx context.Context) (types.Info, error)
- func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, ...) error
- func (cli *Client) NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error)
- func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error
- func (cli *Client) NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error)
- func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error)
- func (cli *Client) NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error)
- func (cli *Client) NetworkRemove(ctx context.Context, networkID string) error
- func (cli *Client) NetworksPrune(ctx context.Context, cfg types.NetworksPruneConfig) (types.NetworksPruneReport, error)
- func (cli *Client) NewVersionError(APIrequired, feature string) error
- func (cli *Client) NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error)
- func (cli *Client) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error)
- func (cli *Client) NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error
- func (cli *Client) NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error
- func (cli *Client) Ping(ctx context.Context) (types.Ping, error)
- func (cli *Client) PluginCreate(ctx context.Context, createContext io.Reader, ...) error
- func (cli *Client) PluginDisable(ctx context.Context, name string) error
- func (cli *Client) PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error
- func (cli *Client) PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error)
- func (cli *Client) PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (err error)
- func (cli *Client) PluginList(ctx context.Context) (types.PluginsListResponse, error)
- func (cli *Client) PluginPush(ctx context.Context, name string, registryAuth string) error
- func (cli *Client) PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error
- func (cli *Client) PluginSet(ctx context.Context, name string, args []string) error
- func (cli *Client) RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error)
- func (cli *Client) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error)
- func (cli *Client) SecretInspectWithRaw(ctx context.Context, id string) (swarm.Secret, []byte, error)
- func (cli *Client) SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error)
- func (cli *Client) SecretRemove(ctx context.Context, id string) error
- func (cli *Client) ServerVersion(ctx context.Context) (types.Version, error)
- func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, ...) (types.ServiceCreateResponse, error)
- func (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error)
- func (cli *Client) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error)
- func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error)
- func (cli *Client) ServiceRemove(ctx context.Context, serviceID string) error
- func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, ...) (types.ServiceUpdateResponse, error)
- func (cli *Client) SwarmGetUnlockKey(ctx context.Context) (types.SwarmUnlockKeyResponse, error)
- func (cli *Client) SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error)
- func (cli *Client) SwarmInspect(ctx context.Context) (swarm.Swarm, error)
- func (cli *Client) SwarmJoin(ctx context.Context, req swarm.JoinRequest) error
- func (cli *Client) SwarmLeave(ctx context.Context, force bool) error
- func (cli *Client) SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error
- func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, ...) error
- func (cli *Client) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error)
- func (cli *Client) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error)
- func (cli *Client) UpdateClientVersion(v string)
- func (cli *Client) VolumeCreate(ctx context.Context, options volumetypes.VolumesCreateBody) (types.Volume, error)
- func (cli *Client) VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error)
- func (cli *Client) VolumeInspectWithRaw(ctx context.Context, volumeID string) (types.Volume, []byte, error)
- func (cli *Client) VolumeList(ctx context.Context, filter filters.Args) (volumetypes.VolumesListOKBody, error)
- func (cli *Client) VolumeRemove(ctx context.Context, volumeID string, force bool) error
- func (cli *Client) VolumesPrune(ctx context.Context, cfg types.VolumesPruneConfig) (types.VolumesPruneReport, error)
- type CommonAPIClient
- type ContainerAPIClient
- type ImageAPIClient
- type NetworkAPIClient
- type NodeAPIClient
- type PluginAPIClient
- type SecretAPIClient
- type ServiceAPIClient
- type SwarmAPIClient
- type SystemAPIClient
- type VolumeAPIClient
Examples ¶
Constants ¶
const DefaultDockerHost = "unix:///var/run/docker.sock"
DefaultDockerHost defines os specific default if DOCKER_HOST is unset
const DefaultVersion string = "1.25"
DefaultVersion is the version of the current stable API
Variables ¶
This section is empty.
Functions ¶
func ErrorConnectionFailed ¶
ErrorConnectionFailed returns an error with host in the error message when connection to docker daemon failed.
func IsErrConnectionFailed ¶
IsErrConnectionFailed returns true if the error is caused by connection failed.
func IsErrContainerNotFound ¶
IsErrContainerNotFound returns true if the error is caused when a container is not found in the docker host.
func IsErrImageNotFound ¶
IsErrImageNotFound returns true if the error is caused when an image is not found in the docker host.
func IsErrNetworkNotFound ¶
IsErrNetworkNotFound returns true if the error is caused when a network is not found in the docker host.
func IsErrNodeNotFound ¶
IsErrNodeNotFound returns true if the error is caused when a node is not found.
func IsErrNotFound ¶
IsErrNotFound returns true if the error is caused with an object (image, container, network, volume, …) is not found in the docker host.
func IsErrPluginPermissionDenied ¶
IsErrPluginPermissionDenied returns true if the error is caused when a user denies a plugin's permissions
func IsErrSecretNotFound ¶
IsErrSecretNotFound returns true if the error is caused when a secret is not found.
func IsErrServiceNotFound ¶
IsErrServiceNotFound returns true if the error is caused when a service is not found.
func IsErrTaskNotFound ¶
IsErrTaskNotFound returns true if the error is caused when a task is not found.
func IsErrUnauthorized ¶
IsErrUnauthorized returns true if the error is caused when a remote registry authentication fails
func IsErrVolumeNotFound ¶
IsErrVolumeNotFound returns true if the error is caused when a volume is not found in the docker host.
Types ¶
type APIClient ¶
type APIClient interface { CommonAPIClient // contains filtered or unexported methods }
APIClient is an interface that clients that talk with a docker server must implement.
type CheckpointAPIClient ¶
type CheckpointAPIClient interface { CheckpointCreate(ctx context.Context, container string, options types.CheckpointCreateOptions) error CheckpointDelete(ctx context.Context, container string, options types.CheckpointDeleteOptions) error CheckpointList(ctx context.Context, container string, options types.CheckpointListOptions) ([]types.Checkpoint, error) }
CheckpointAPIClient defines API client methods for the checkpoints
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the API client that performs all operations against a docker server.
func NewClient ¶
func NewClient(host string, version string, client *http.Client, httpHeaders map[string]string) (*Client, error)
NewClient initializes a new API client for the given host and API version. It uses the given http client as transport. It also initializes the custom http headers to add to each request.
It won't send any version information if the version number is empty. It is highly recommended that you set a version or your client may break if the server is upgraded.
func NewEnvClient ¶
NewEnvClient initializes a new API client based on environment variables. Use DOCKER_HOST to set the url to the docker server. Use DOCKER_API_VERSION to set the version of the API to reach, leave empty for latest. Use DOCKER_CERT_PATH to load the tls certificates from. Use DOCKER_TLS_VERIFY to enable or disable TLS verification, off by default.
func (*Client) CheckpointCreate ¶
func (cli *Client) CheckpointCreate(ctx context.Context, container string, options types.CheckpointCreateOptions) error
CheckpointCreate creates a checkpoint from the given container with the given name
func (*Client) CheckpointDelete ¶
func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, options types.CheckpointDeleteOptions) error
CheckpointDelete deletes the checkpoint with the given name from the given container
func (*Client) CheckpointList ¶
func (cli *Client) CheckpointList(ctx context.Context, container string, options types.CheckpointListOptions) ([]types.Checkpoint, error)
CheckpointList returns the volumes configured in the docker host.
func (*Client) ClientVersion ¶
ClientVersion returns the version string associated with this instance of the Client. Note that this value can be changed via the DOCKER_API_VERSION env var.
func (*Client) Close ¶
Close ensures that transport.Client is closed especially needed while using NewClient with *http.Client = nil for example client.NewClient("unix:///var/run/docker.sock", nil, "v1.18", map[string]string{"User-Agent": "engine-api-cli-1.0"})
func (*Client) ContainerAttach ¶
func (cli *Client) ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error)
ContainerAttach attaches a connection to a container in the server. It returns a types.HijackedConnection with the hijacked connection and the a reader to get output. It's up to the called to close the hijacked connection by calling types.HijackedResponse.Close.
func (*Client) ContainerCommit ¶
func (cli *Client) ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error)
ContainerCommit applies changes into a container and creates a new tagged image.
func (*Client) ContainerCreate ¶
func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error)
ContainerCreate creates a new container based in the given configuration. It can be associated with a name, but it's not mandatory.
func (*Client) ContainerDiff ¶
func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error)
ContainerDiff shows differences in a container filesystem since it was started.
func (*Client) ContainerExecAttach ¶
func (cli *Client) ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error)
ContainerExecAttach attaches a connection to an exec process in the server. It returns a types.HijackedConnection with the hijacked connection and the a reader to get output. It's up to the called to close the hijacked connection by calling types.HijackedResponse.Close.
func (*Client) ContainerExecCreate ¶
func (cli *Client) ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error)
ContainerExecCreate creates a new exec configuration to run an exec process.
func (*Client) ContainerExecInspect ¶
func (cli *Client) ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error)
ContainerExecInspect returns information about a specific exec process on the docker host.
func (*Client) ContainerExecResize ¶
func (cli *Client) ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error
ContainerExecResize changes the size of the tty for an exec process running inside a container.
func (*Client) ContainerExecStart ¶
func (cli *Client) ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error
ContainerExecStart starts an exec process already created in the docker host.
func (*Client) ContainerExport ¶
ContainerExport retrieves the raw contents of a container and returns them as an io.ReadCloser. It's up to the caller to close the stream.
func (*Client) ContainerInspect ¶
func (cli *Client) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
ContainerInspect returns the container information.
func (*Client) ContainerInspectWithRaw ¶
func (cli *Client) ContainerInspectWithRaw(ctx context.Context, containerID string, getSize bool) (types.ContainerJSON, []byte, error)
ContainerInspectWithRaw returns the container information and its raw representation.
func (*Client) ContainerKill ¶
ContainerKill terminates the container process but does not remove the container from the docker host.
func (*Client) ContainerList ¶
func (cli *Client) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
ContainerList returns the list of containers in the docker host.
func (*Client) ContainerLogs ¶
func (cli *Client) ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error)
ContainerLogs returns the logs generated by a container in an io.ReadCloser. It's up to the caller to close the stream.
Example (WithTimeout) ¶
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() client, _ := NewEnvClient() reader, err := client.ContainerLogs(ctx, "container_id", types.ContainerLogsOptions{}) if err != nil { log.Fatal(err) } _, err = io.Copy(os.Stdout, reader) if err != nil && err != io.EOF { log.Fatal(err) }
Output:
func (*Client) ContainerPause ¶
ContainerPause pauses the main process of a given container without terminating it.
func (*Client) ContainerRemove ¶
func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options types.ContainerRemoveOptions) error
ContainerRemove kills and removes a container from the docker host.
func (*Client) ContainerRename ¶
ContainerRename changes the name of a given container.
func (*Client) ContainerResize ¶
func (cli *Client) ContainerResize(ctx context.Context, containerID string, options types.ResizeOptions) error
ContainerResize changes the size of the tty for a container.
func (*Client) ContainerRestart ¶
func (cli *Client) ContainerRestart(ctx context.Context, containerID string, timeout *time.Duration) error
ContainerRestart stops and starts a container again. It makes the daemon to wait for the container to be up again for a specific amount of time, given the timeout.
func (*Client) ContainerStart ¶
func (cli *Client) ContainerStart(ctx context.Context, containerID string, options types.ContainerStartOptions) error
ContainerStart sends a request to the docker daemon to start a container.
func (*Client) ContainerStatPath ¶
func (cli *Client) ContainerStatPath(ctx context.Context, containerID, path string) (types.ContainerPathStat, error)
ContainerStatPath returns Stat information about a path inside the container filesystem.
func (*Client) ContainerStats ¶
func (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error)
ContainerStats returns near realtime stats for a given container. It's up to the caller to close the io.ReadCloser returned.
func (*Client) ContainerStop ¶
func (cli *Client) ContainerStop(ctx context.Context, containerID string, timeout *time.Duration) error
ContainerStop stops a container without terminating the process. The process is blocked until the container stops or the timeout expires.
func (*Client) ContainerTop ¶
func (cli *Client) ContainerTop(ctx context.Context, containerID string, arguments []string) (types.ContainerProcessList, error)
ContainerTop shows process information from within a container.
func (*Client) ContainerUnpause ¶
ContainerUnpause resumes the process execution within a container
func (*Client) ContainerUpdate ¶
func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error)
ContainerUpdate updates resources of a container
func (*Client) ContainerWait ¶
ContainerWait pauses execution until a container exits. It returns the API status code as response of its readiness.
Example (WithTimeout) ¶
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() client, _ := NewEnvClient() _, err := client.ContainerWait(ctx, "container_id") if err != nil { log.Fatal(err) }
Output:
func (*Client) ContainersPrune ¶
func (cli *Client) ContainersPrune(ctx context.Context, cfg types.ContainersPruneConfig) (types.ContainersPruneReport, error)
ContainersPrune requests the daemon to delete unused data
func (*Client) CopyFromContainer ¶
func (cli *Client) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error)
CopyFromContainer gets the content from the container and returns it as a Reader to manipulate it in the host. It's up to the caller to close the reader.
func (*Client) CopyToContainer ¶
func (cli *Client) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error
CopyToContainer copies content into the container filesystem.
func (*Client) Events ¶
func (cli *Client) Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error)
Events returns a stream of events in the daemon. It's up to the caller to close the stream by cancelling the context. Once the stream has been completely read an io.EOF error will be sent over the error channel. If an error is sent all processing will be stopped. It's up to the caller to reopen the stream in the event of an error by reinvoking this method.
func (*Client) ImageBuild ¶
func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error)
ImageBuild sends request to the daemon to build images. The Body in the response implement an io.ReadCloser and it's up to the caller to close it.
func (*Client) ImageCreate ¶
func (cli *Client) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error)
ImageCreate creates a new image based in the parent options. It returns the JSON content in the response body.
func (*Client) ImageHistory ¶
ImageHistory returns the changes in an image in history format.
func (*Client) ImageImport ¶
func (cli *Client) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error)
ImageImport creates a new image based in the source options. It returns the JSON content in the response body.
func (*Client) ImageInspectWithRaw ¶
func (cli *Client) ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error)
ImageInspectWithRaw returns the image information and its raw representation.
func (*Client) ImageList ¶
func (cli *Client) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
ImageList returns a list of images in the docker host.
func (*Client) ImageLoad ¶
func (cli *Client) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error)
ImageLoad loads an image in the docker host from the client host. It's up to the caller to close the io.ReadCloser in the ImageLoadResponse returned by this function.
func (*Client) ImagePull ¶
func (cli *Client) ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error)
ImagePull requests the docker host to pull an image from a remote registry. It executes the privileged function if the operation is unauthorized and it tries one more time. It's up to the caller to handle the io.ReadCloser and close it properly.
FIXME(vdemeester): there is currently used in a few way in docker/docker - if not in trusted content, ref is used to pass the whole reference, and tag is empty - if in trusted content, ref is used to pass the reference name, and tag for the digest
func (*Client) ImagePush ¶
func (cli *Client) ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error)
ImagePush requests the docker host to push an image to a remote registry. It executes the privileged function if the operation is unauthorized and it tries one more time. It's up to the caller to handle the io.ReadCloser and close it properly.
func (*Client) ImageRemove ¶
func (cli *Client) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDelete, error)
ImageRemove removes an image from the docker host.
func (*Client) ImageSave ¶
ImageSave retrieves one or more images from the docker host as an io.ReadCloser. It's up to the caller to store the images and close the stream.
func (*Client) ImageSearch ¶
func (cli *Client) ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error)
ImageSearch makes the docker host to search by a term in a remote registry. The list of results is not sorted in any fashion.
func (*Client) ImagesPrune ¶
func (cli *Client) ImagesPrune(ctx context.Context, cfg types.ImagesPruneConfig) (types.ImagesPruneReport, error)
ImagesPrune requests the daemon to delete unused data
func (*Client) NetworkConnect ¶
func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error
NetworkConnect connects a container to an existent network in the docker host.
func (*Client) NetworkCreate ¶
func (cli *Client) NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error)
NetworkCreate creates a new network in the docker host.
func (*Client) NetworkDisconnect ¶
func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error
NetworkDisconnect disconnects a container from an existent network in the docker host.
func (*Client) NetworkInspect ¶
func (cli *Client) NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error)
NetworkInspect returns the information for a specific network configured in the docker host.
func (*Client) NetworkInspectWithRaw ¶
func (cli *Client) NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error)
NetworkInspectWithRaw returns the information for a specific network configured in the docker host and its raw representation.
func (*Client) NetworkList ¶
func (cli *Client) NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error)
NetworkList returns the list of networks configured in the docker host.
func (*Client) NetworkRemove ¶
NetworkRemove removes an existent network from the docker host.
func (*Client) NetworksPrune ¶
func (cli *Client) NetworksPrune(ctx context.Context, cfg types.NetworksPruneConfig) (types.NetworksPruneReport, error)
NetworksPrune requests the daemon to delete unused networks
func (*Client) NewVersionError ¶
NewVersionError returns an error if the APIVersion required if less than the current supported version
func (*Client) NodeInspectWithRaw ¶
func (cli *Client) NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error)
NodeInspectWithRaw returns the node information.
func (*Client) NodeList ¶
func (cli *Client) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error)
NodeList returns the list of nodes.
func (*Client) NodeRemove ¶
func (cli *Client) NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error
NodeRemove removes a Node.
func (*Client) NodeUpdate ¶
func (cli *Client) NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error
NodeUpdate updates a Node.
func (*Client) Ping ¶
Ping pings the server and return the value of the "Docker-Experimental" & "API-Version" headers
func (*Client) PluginCreate ¶
func (cli *Client) PluginCreate(ctx context.Context, createContext io.Reader, createOptions types.PluginCreateOptions) error
PluginCreate creates a plugin
func (*Client) PluginDisable ¶
PluginDisable disables a plugin
func (*Client) PluginEnable ¶
func (cli *Client) PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error
PluginEnable enables a plugin
func (*Client) PluginInspectWithRaw ¶
func (cli *Client) PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error)
PluginInspectWithRaw inspects an existing plugin
func (*Client) PluginInstall ¶
func (cli *Client) PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) (err error)
PluginInstall installs a plugin
func (*Client) PluginList ¶
PluginList returns the installed plugins
func (*Client) PluginPush ¶
PluginPush pushes a plugin to a registry
func (*Client) PluginRemove ¶
func (cli *Client) PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error
PluginRemove removes a plugin
func (*Client) RegistryLogin ¶
func (cli *Client) RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error)
RegistryLogin authenticates the docker server with a given docker registry. It returns UnauthorizerError when the authentication fails.
func (*Client) SecretCreate ¶
func (cli *Client) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error)
SecretCreate creates a new Secret.
func (*Client) SecretInspectWithRaw ¶
func (cli *Client) SecretInspectWithRaw(ctx context.Context, id string) (swarm.Secret, []byte, error)
SecretInspectWithRaw returns the secret information with raw data
func (*Client) SecretList ¶
func (cli *Client) SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error)
SecretList returns the list of secrets.
func (*Client) SecretRemove ¶
SecretRemove removes a Secret.
func (*Client) ServerVersion ¶
ServerVersion returns information of the docker client and server host.
func (*Client) ServiceCreate ¶
func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error)
ServiceCreate creates a new Service.
func (*Client) ServiceInspectWithRaw ¶
func (cli *Client) ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error)
ServiceInspectWithRaw returns the service information and the raw data.
func (*Client) ServiceList ¶
func (cli *Client) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error)
ServiceList returns the list of services.
func (*Client) ServiceLogs ¶
func (cli *Client) ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error)
ServiceLogs returns the logs generated by a service in an io.ReadCloser. It's up to the caller to close the stream.
Example (WithTimeout) ¶
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() client, _ := NewEnvClient() reader, err := client.ServiceLogs(ctx, "service_id", types.ContainerLogsOptions{}) if err != nil { log.Fatal(err) } _, err = io.Copy(os.Stdout, reader) if err != nil && err != io.EOF { log.Fatal(err) }
Output:
func (*Client) ServiceRemove ¶
ServiceRemove kills and removes a service.
func (*Client) ServiceUpdate ¶
func (cli *Client) ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error)
ServiceUpdate updates a Service.
func (*Client) SwarmGetUnlockKey ¶
SwarmGetUnlockKey retrieves the swarm's unlock key.
func (*Client) SwarmInspect ¶
SwarmInspect inspects the Swarm.
func (*Client) SwarmLeave ¶
SwarmLeave leaves the Swarm.
func (*Client) SwarmUnlock ¶
SwarmUnlock unlockes locked swarm.
func (*Client) SwarmUpdate ¶
func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error
SwarmUpdate updates the Swarm.
func (*Client) TaskInspectWithRaw ¶
func (cli *Client) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error)
TaskInspectWithRaw returns the task information and its raw representation..
func (*Client) TaskList ¶
func (cli *Client) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error)
TaskList returns the list of tasks.
func (*Client) UpdateClientVersion ¶
UpdateClientVersion updates the version string associated with this instance of the Client.
func (*Client) VolumeCreate ¶
func (cli *Client) VolumeCreate(ctx context.Context, options volumetypes.VolumesCreateBody) (types.Volume, error)
VolumeCreate creates a volume in the docker host.
func (*Client) VolumeInspect ¶
VolumeInspect returns the information about a specific volume in the docker host.
func (*Client) VolumeInspectWithRaw ¶
func (cli *Client) VolumeInspectWithRaw(ctx context.Context, volumeID string) (types.Volume, []byte, error)
VolumeInspectWithRaw returns the information about a specific volume in the docker host and its raw representation
func (*Client) VolumeList ¶
func (cli *Client) VolumeList(ctx context.Context, filter filters.Args) (volumetypes.VolumesListOKBody, error)
VolumeList returns the volumes configured in the docker host.
func (*Client) VolumeRemove ¶
VolumeRemove removes a volume from the docker host.
func (*Client) VolumesPrune ¶
func (cli *Client) VolumesPrune(ctx context.Context, cfg types.VolumesPruneConfig) (types.VolumesPruneReport, error)
VolumesPrune requests the daemon to delete unused data
type CommonAPIClient ¶
type CommonAPIClient interface { ContainerAPIClient ImageAPIClient NodeAPIClient NetworkAPIClient PluginAPIClient ServiceAPIClient SwarmAPIClient SecretAPIClient SystemAPIClient VolumeAPIClient ClientVersion() string ServerVersion(ctx context.Context) (types.Version, error) UpdateClientVersion(v string) }
CommonAPIClient is the common methods between stable and experimental versions of APIClient.
type ContainerAPIClient ¶
type ContainerAPIClient interface { ContainerAttach(ctx context.Context, container string, options types.ContainerAttachOptions) (types.HijackedResponse, error) ContainerCommit(ctx context.Context, container string, options types.ContainerCommitOptions) (types.IDResponse, error) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (container.ContainerCreateCreatedBody, error) ContainerDiff(ctx context.Context, container string) ([]types.ContainerChange, error) ContainerExecAttach(ctx context.Context, execID string, config types.ExecConfig) (types.HijackedResponse, error) ContainerExecCreate(ctx context.Context, container string, config types.ExecConfig) (types.IDResponse, error) ContainerExecInspect(ctx context.Context, execID string) (types.ContainerExecInspect, error) ContainerExecResize(ctx context.Context, execID string, options types.ResizeOptions) error ContainerExecStart(ctx context.Context, execID string, config types.ExecStartCheck) error ContainerExport(ctx context.Context, container string) (io.ReadCloser, error) ContainerInspect(ctx context.Context, container string) (types.ContainerJSON, error) ContainerInspectWithRaw(ctx context.Context, container string, getSize bool) (types.ContainerJSON, []byte, error) ContainerKill(ctx context.Context, container, signal string) error ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) ContainerLogs(ctx context.Context, container string, options types.ContainerLogsOptions) (io.ReadCloser, error) ContainerPause(ctx context.Context, container string) error ContainerRemove(ctx context.Context, container string, options types.ContainerRemoveOptions) error ContainerRename(ctx context.Context, container, newContainerName string) error ContainerResize(ctx context.Context, container string, options types.ResizeOptions) error ContainerRestart(ctx context.Context, container string, timeout *time.Duration) error ContainerStatPath(ctx context.Context, container, path string) (types.ContainerPathStat, error) ContainerStats(ctx context.Context, container string, stream bool) (types.ContainerStats, error) ContainerStart(ctx context.Context, container string, options types.ContainerStartOptions) error ContainerStop(ctx context.Context, container string, timeout *time.Duration) error ContainerTop(ctx context.Context, container string, arguments []string) (types.ContainerProcessList, error) ContainerUnpause(ctx context.Context, container string) error ContainerUpdate(ctx context.Context, container string, updateConfig container.UpdateConfig) (container.ContainerUpdateOKBody, error) ContainerWait(ctx context.Context, container string) (int64, error) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, types.ContainerPathStat, error) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options types.CopyToContainerOptions) error ContainersPrune(ctx context.Context, cfg types.ContainersPruneConfig) (types.ContainersPruneReport, error) }
ContainerAPIClient defines API client methods for the containers
type ImageAPIClient ¶
type ImageAPIClient interface { ImageBuild(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) ImageHistory(ctx context.Context, image string) ([]types.ImageHistory, error) ImageImport(ctx context.Context, source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) ImagePull(ctx context.Context, ref string, options types.ImagePullOptions) (io.ReadCloser, error) ImagePush(ctx context.Context, ref string, options types.ImagePushOptions) (io.ReadCloser, error) ImageRemove(ctx context.Context, image string, options types.ImageRemoveOptions) ([]types.ImageDelete, error) ImageSearch(ctx context.Context, term string, options types.ImageSearchOptions) ([]registry.SearchResult, error) ImageSave(ctx context.Context, images []string) (io.ReadCloser, error) ImageTag(ctx context.Context, image, ref string) error ImagesPrune(ctx context.Context, cfg types.ImagesPruneConfig) (types.ImagesPruneReport, error) }
ImageAPIClient defines API client methods for the images
type NetworkAPIClient ¶
type NetworkAPIClient interface { NetworkConnect(ctx context.Context, networkID, container string, config *network.EndpointSettings) error NetworkCreate(ctx context.Context, name string, options types.NetworkCreate) (types.NetworkCreateResponse, error) NetworkDisconnect(ctx context.Context, networkID, container string, force bool) error NetworkInspect(ctx context.Context, networkID string) (types.NetworkResource, error) NetworkInspectWithRaw(ctx context.Context, networkID string) (types.NetworkResource, []byte, error) NetworkList(ctx context.Context, options types.NetworkListOptions) ([]types.NetworkResource, error) NetworkRemove(ctx context.Context, networkID string) error NetworksPrune(ctx context.Context, cfg types.NetworksPruneConfig) (types.NetworksPruneReport, error) }
NetworkAPIClient defines API client methods for the networks
type NodeAPIClient ¶
type NodeAPIClient interface { NodeInspectWithRaw(ctx context.Context, nodeID string) (swarm.Node, []byte, error) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error) NodeRemove(ctx context.Context, nodeID string, options types.NodeRemoveOptions) error NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error }
NodeAPIClient defines API client methods for the nodes
type PluginAPIClient ¶
type PluginAPIClient interface { PluginList(ctx context.Context) (types.PluginsListResponse, error) PluginRemove(ctx context.Context, name string, options types.PluginRemoveOptions) error PluginEnable(ctx context.Context, name string, options types.PluginEnableOptions) error PluginDisable(ctx context.Context, name string) error PluginInstall(ctx context.Context, name string, options types.PluginInstallOptions) error PluginPush(ctx context.Context, name string, registryAuth string) error PluginSet(ctx context.Context, name string, args []string) error PluginInspectWithRaw(ctx context.Context, name string) (*types.Plugin, []byte, error) PluginCreate(ctx context.Context, createContext io.Reader, options types.PluginCreateOptions) error }
PluginAPIClient defines API client methods for the plugins
type SecretAPIClient ¶
type SecretAPIClient interface { SecretList(ctx context.Context, options types.SecretListOptions) ([]swarm.Secret, error) SecretCreate(ctx context.Context, secret swarm.SecretSpec) (types.SecretCreateResponse, error) SecretRemove(ctx context.Context, id string) error SecretInspectWithRaw(ctx context.Context, name string) (swarm.Secret, []byte, error) }
SecretAPIClient defines API client methods for secrets
type ServiceAPIClient ¶
type ServiceAPIClient interface { ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error) ServiceInspectWithRaw(ctx context.Context, serviceID string) (swarm.Service, []byte, error) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) ServiceRemove(ctx context.Context, serviceID string) error ServiceUpdate(ctx context.Context, serviceID string, version swarm.Version, service swarm.ServiceSpec, options types.ServiceUpdateOptions) (types.ServiceUpdateResponse, error) ServiceLogs(ctx context.Context, serviceID string, options types.ContainerLogsOptions) (io.ReadCloser, error) TaskInspectWithRaw(ctx context.Context, taskID string) (swarm.Task, []byte, error) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error) }
ServiceAPIClient defines API client methods for the services
type SwarmAPIClient ¶
type SwarmAPIClient interface { SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) SwarmJoin(ctx context.Context, req swarm.JoinRequest) error SwarmGetUnlockKey(ctx context.Context) (types.SwarmUnlockKeyResponse, error) SwarmUnlock(ctx context.Context, req swarm.UnlockRequest) error SwarmLeave(ctx context.Context, force bool) error SwarmInspect(ctx context.Context) (swarm.Swarm, error) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error }
SwarmAPIClient defines API client methods for the swarm
type SystemAPIClient ¶
type SystemAPIClient interface { Events(ctx context.Context, options types.EventsOptions) (<-chan events.Message, <-chan error) Info(ctx context.Context) (types.Info, error) RegistryLogin(ctx context.Context, auth types.AuthConfig) (registry.AuthenticateOKBody, error) DiskUsage(ctx context.Context) (types.DiskUsage, error) Ping(ctx context.Context) (types.Ping, error) }
SystemAPIClient defines API client methods for the system
type VolumeAPIClient ¶
type VolumeAPIClient interface { VolumeCreate(ctx context.Context, options volumetypes.VolumesCreateBody) (types.Volume, error) VolumeInspect(ctx context.Context, volumeID string) (types.Volume, error) VolumeInspectWithRaw(ctx context.Context, volumeID string) (types.Volume, []byte, error) VolumeList(ctx context.Context, filter filters.Args) (volumetypes.VolumesListOKBody, error) VolumeRemove(ctx context.Context, volumeID string, force bool) error VolumesPrune(ctx context.Context, cfg types.VolumesPruneConfig) (types.VolumesPruneReport, error) }
VolumeAPIClient defines API client methods for the volumes
Source Files ¶
- checkpoint_create.go
- checkpoint_delete.go
- checkpoint_list.go
- client.go
- client_unix.go
- container_attach.go
- container_commit.go
- container_copy.go
- container_create.go
- container_diff.go
- container_exec.go
- container_export.go
- container_inspect.go
- container_kill.go
- container_list.go
- container_logs.go
- container_pause.go
- container_prune.go
- container_remove.go
- container_rename.go
- container_resize.go
- container_restart.go
- container_start.go
- container_stats.go
- container_stop.go
- container_top.go
- container_unpause.go
- container_update.go
- container_wait.go
- disk_usage.go
- errors.go
- events.go
- hijack.go
- image_build.go
- image_create.go
- image_history.go
- image_import.go
- image_inspect.go
- image_list.go
- image_load.go
- image_prune.go
- image_pull.go
- image_push.go
- image_remove.go
- image_save.go
- image_search.go
- image_tag.go
- info.go
- interface.go
- interface_experimental.go
- interface_stable.go
- login.go
- network_connect.go
- network_create.go
- network_disconnect.go
- network_inspect.go
- network_list.go
- network_prune.go
- network_remove.go
- node_inspect.go
- node_list.go
- node_remove.go
- node_update.go
- ping.go
- plugin_create.go
- plugin_disable.go
- plugin_enable.go
- plugin_inspect.go
- plugin_install.go
- plugin_list.go
- plugin_push.go
- plugin_remove.go
- plugin_set.go
- request.go
- secret_create.go
- secret_inspect.go
- secret_list.go
- secret_remove.go
- service_create.go
- service_inspect.go
- service_list.go
- service_logs.go
- service_remove.go
- service_update.go
- swarm_get_unlock_key.go
- swarm_init.go
- swarm_inspect.go
- swarm_join.go
- swarm_leave.go
- swarm_unlock.go
- swarm_update.go
- task_inspect.go
- task_list.go
- transport.go
- utils.go
- version.go
- volume_create.go
- volume_inspect.go
- volume_list.go
- volume_prune.go
- volume_remove.go