How to use docker remote api to create container?

I’m new to docker. I have read the tutorial in docker remote API . In aspect of creating container. It show me too many param to fill. I want to know what is equivalent to this command :

docker run -d -p 5000:5000 –restart=always –name registry
registry:2.

  • mongodb connection refused docker-compose
  • Codeception web driver (Selenium on Docker) tests not working as unable to see other containers (works on my dev machine though?!)
  • how to list Docker images with Vagrant and Kubernetes
  • Get composer (php dependency manager) to run on a docker image build
  • Connecting local cassandra cluster with docker container
  • How does one use Apache in a Docker Container and write nothing to disk (all logs to STDIO / STDERR)?
  • I have no idea about it. Can anyone tell me? Thanks!

  • docker-compose volumes_from equivalent with version 3
  • Deploy Java EE application to payara41 docker container using maven
  • Dockerfile : Running client/server python scripts
  • Have sshd forward logins of git user to a (GitLab) Docker container
  • Docker Compose Shared Folder
  • Add windows folder in Dockerfile
  • 2 Solutions collect form web for “How to use docker remote api to create container?”

    Original answer (July 2015):

    That would be (not tested directly), as in this tutorial (provided the remote API is enabled):

    First create the container:

    curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2.",}' http://localhost:2376/containers/create?name=registry
    

    Then start it:

    curl -v -X POST -H "Content-Type: application/json" -d '{"PortBindings": { "5000/tcp": [{ "HostPort": "5000" }] },"RestartPolicy": { "Name": "always",},}' http://localhost:2376/containers/registry/start?name=registry
    

    Update February é017, for docker 1.13+ see rocksteady’s answer, using a similar idea but with the current engine/api/v1.26.

    More or less just copying VonCs answer in order to update to todays version of docker (1.13) and docker remote api version (v1.26).

    What is different:

    • All the configuration needs to be done when the container is created, otherwise the following error message is returned when starting the container the way VonC did.

      {"message":"starting container with non-empty request body was deprecated since v1.10 and removed in v1.12"}

    First create the container: (including all the configuration)

    curl -v -X POST -H "Content-Type: application/json" -d @docker.conf http://localhost:2376/containers/create?name=registry

    The file docker.conf looks like this:

    {
      "Image": registry:2.",
      "ExposedPorts": {
        "5000/tcp": {}
      },
      "HostConfig": {
        "PortBindings": {
          "5000/tcp": [
            {
              "HostPort": "5000"
            }
          ]
        },
        "RestartPolicy": {
          "Name": "always"
        }
        "AutoRemove": true
      }
    }
    

    Then start it: (the parameter name is not necessary, the container is just named registry)

    curl -v -X POST -H "Content-Type: application/json" http://localhost:2376/containers/registry/start

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.