'Create a container running a simple HTTP server that writes to
its volume on POST and reads the same data back from the volume
on GET.
:param cluster: The cluster to create the container within.
:param unicode volume_name: The name to use for the volume. If left
unspecified then a random name will be generated.'

def _test_create_container(self, cluster, volume_name=None):

    data = random_name(self).encode('utf-8')
    node = cluster.nodes[0]
    client = get_docker_client(cluster, node.public_address)
    http_port = 8080
    if (volume_name is None):
        volume_name = random_name(self)
    container_identifier = self.run_python_container(cluster, node.public_address, {'host_config': client.create_host_config(binds=['{}:/data'.format(volume_name)], port_bindings={http_port: 0}, restart_policy={'Name': 'always'}), 'ports': [http_port]}, SCRIPTS.child('datahttp.py'), [u'/data'], client=client)
    host_port = extract_external_port(client, container_identifier, http_port)
    d = post_http_server(self, node.public_address, host_port, {'data': data})
    d.addCallback((lambda _: assert_http_server(self, node.public_address, host_port, expected_response=data)))
    return d
