Popularity
3.9
Stable
Activity
0.0
Stable
19
3
9

Monthly Downloads: 10
Programming language: Elixir
License: MIT License
Tags: Third Party APIs    

dockerex alternatives and similar packages

Based on the "Third Party APIs" category.
Alternatively, view dockerex alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of dockerex or a related project?

Add another 'Third Party APIs' Package

README

Dockerex

Dockerex is a lightweight Docker Remote API Client for Elixir that supports SSL connection to a Docker Host or a Docker Swarm manager.

Dockerex is tested against latest Docker Remote API v1.24.

Installation

The package can be installed as:

  1. Add dockerex to your list of dependencies in mix.exs:
  def deps do
    [{:dockerex, "~> 0.1.0"}]
  end
  1. Ensure dockerex is started before your application:
  def application do
    [applications: [:dockerex]]
  end
  1. Config your docker host in config.exs
  config :dockerex,
  host: "https://10.10.10.1:2376/",
  options: [
    ssl:  [
      {:certfile, "/path/to/your/cert.pem"},
      {:keyfile, "/path/to/your/key.pem"}
    ]
  ]

You may also establish a connection to the docker engine over a unix socket. To do this, set the host variable in your config to "http+unix://PATH/". Note that PATH has to be URI-encoded, i.e. the default socket path would be %2Fvar%2Frun%2Fdocker.sock.

Usage

Dockerex is a lightweight client, which means you need to specify the endpoint and original docker params in a map format. Before making any requests, you have to start the HTTP client by calling HTTPoison.start.

Some examples:

  result = Dockerex.Client.post("containers/create", %{"Image": "nginx",
                                                       "Tty": true,
                                                       "HostConfig": %{"RestartPolicy": %{ "Name": "always"}},
                                                       "Cmd": ["start.sh"]})

  cid = result["Id"]
  Dockerex.Client.post("containers/#{cid}/start")

  Dockerex.Client.post("containers/#{cid}/stop")

  Dockerex.Client.get("containers/#{cid}/logs?stderr=1&stdout=1&timestamps=0&since=#{DateTime.to_unix(DateTime.utc_now) - 5}")

  Dockerex.Client.delete("containers/#{cid}")