Running commands with the docker binary (CLI)
caution
This documentation is for an older version of Dagger, which is no longer actively maintained.
We encourage you to upgrade and refer to the documentation for the most current version.
If you cannot upgrade to the latest version, please contact us in the help forum on Discord. When contacting us, please let us know why you cannot move to the latest version. From there, our team will work with you on your use case.
There's a universe.dagger.io/docker/cli
package that allows you to run docker commands against a local or remote docker engine. Here's a few examples.
Local daemon
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
client: network: "unix:///var/run/docker.sock": connect: dagger.#Socket
actions: run: cli.#Run & {
host: client.network."unix:///var/run/docker.sock".connect
command: name: "info"
}
}
Remote daemon, via SSH
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
client: filesystem: {
"~/.ssh/id_rsa": read: contents: dagger.#Secret
"~/.ssh/known_hosts": read: contents: dagger.#Secret
}
actions: run: cli.#Run & {
host: "ssh://root@93.184.216.34"
ssh: {
key: client.filesystem."~/.ssh/id_rsa".read.contents
knownHosts: client.filesystem."~/.ssh/known_hosts".read.contents
}
command: name: "info"
}
}
Remote daemon, via HTTPS
package main
import (
"dagger.io/dagger"
"universe.dagger.io/docker/cli"
)
dagger.#Plan & {
// Directory with certificates. Needs the following files:
// - ca.pem --> (Certificate authority that signed the registry certificate)
// - cert.pem --> (Client certificate)
// - key.pem --> (Client private key)
client: filesystem: "./certs": read: contents: dagger.#FS
actions: run: cli.#Run & {
host: "tcp://93.184.216.34:2376"
certs: client.filesystem."./certs".read.contents
command: name: "info"
}
}