Unix domain socket

Within a single host, UNIX IPC mechanisms, especially UNIX domain sockets or pipes, can also be used to communicate between containers:

$  docker run  --name c1 –v /var/run/foo:/var/run/foo –d –I –t base /bin/bash  
$  docker run  --name c2 –v /var/run/foo:/var/run/foo –d –I –t base /bin/bash

Apps on c1 and c2 can communicate over the following Unix socket address:

struct  sockaddr_un address;
address.sun_family = AF_UNIX;
snprintf(address.sun_path, UNIX_PATH_MAX, "/var/run/foo/bar" );

C1: Server.c

C2: Client.c

bind(socket_fd, (struct sockaddr *) &address, sizeof(struct sockaddr_un));
listen(socket_fd, 5);
while((connection_fd = accept(socket_fd, (struct sockaddr *) &address, &address_length)) > -1)
nbytes = read(connection_fd, buffer, 256);
connect(socket_fd, (struct sockaddr *) &address, sizeof(struct sockaddr_un));
write(socket_fd, buffer, nbytes);
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset