Elixir client library for the Docker API. Currently supported API versions:
- 1.27
- Versioning
- Containers
- List containers:
- Create container
- Query parameter:
name
- Query parameter:
- Inspect container
- Query parameter:
size
- Remove a container
- Query parameter:
v
- Query parameter:
force
- Query parameter:
link
- Query parameter:
- Remove a container
- Images
- Networks
- List Networks
- Query parameter:
filters
- Query parameter:
- Inspect network
- Remove network
- Create network
- Connect a container to a network
- Disconnect a container from a network
- Delete unused networks
- Query parameter:
filters
- Query parameter:
- List Networks
- Volumes
- Exec
- Swam
- Nodes
- Services
- List services
- Query parameter:
filters
- Query parameter:
- Create service
- Header:
X-Registry-Auth
- Header:
- Inspect service
- Delete service
- Update service
- Query parameter:
version
- Query parameter:
registryAuthFrom
- Header:
X-Registry-Auth
- Query parameter:
- Get service logs
- Query parameter:
details
- Query parameter:
follow
- Query parameter:
stdout
- Query parameter:
stderr
- Query parameter:
since
- Query parameter:
timestamps
- Query parameter:
tail
- Query parameter:
- List services
- Tasks
- Secrets
- Plugins
- System
Add marine_diesel
to your list of dependencies in mix.exs
:
def deps do
[{:marine_diesel, "~> 0.1.0"}]
end
Add marine_diesel
to your applications
:
def application do
[applications: [:marine_diesel]]
end
Configure marine_diesel
in your config/config.exs
:
config :marine_diesel,
docker: [
host: "192.168.99.100",
port: 2376
],
ssl: [
cacertfile: "certs/ca.crt",
certfile: "certs/client.crt",
keyfile: "certs/client.key",
password: 'test'
]
If you don't want to use SSL (although you really should), you can simply leave the ssl:
portion away (although you really shouldn't).
import MarineDiesel.Network
...
IO.inspect MarineDiesel.Network.index()
net = %MarineDiesel.Network{
Name: "isolated_nw",
CheckDuplicate: false,
Driver: "bridge",
EnableIPv6: false,
IPAM: %{
Driver: "default",
Config: [
%{
Subnet: "172.24.0.0/16",
IPRange: "172.24.11.0/24",
Gateway: "172.24.11.11"
}
]
},
Internal: true,
Attachable: false,
Options: %{
"com.docker.network.bridge.default_bridge": "false",
"com.docker.network.bridge.enable_icc": "true",
"com.docker.network.bridge.enable_ip_masquerade": "true",
"com.docker.network.bridge.name": "docker5",
"com.docker.network.driver.mtu": "1500"
},
Labels: %{}
}
createdNet = net
|> create
IO.inspect createdNet
IO.inspect createdNet
|> show
IO.inspect createdNet
|> destroy
...