<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>On 05/06/2019 13:10, Roger Lipscombe wrote:<br>
    </p>
    <blockquote type="cite"
cite="mid:CAJgnQd-ch-W3F-r9XP-AOGhRpyaUG7Kq5tfRp1o9sBOPmDskwA@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">I've got an Erlang node running in docker[1]. How do I connect to it
from the host?

I've tried every combination of -name, -sname, etc., that I can think
of, and all I'm getting is 'pang'.</pre>
    </blockquote>
    <p>You need a couple of things to succeed:</p>
    <ul>
      <li>Both nodes must have the same cookie</li>
      <li>The nodes must be using either both <tt>-name</tt> or both <tt>-sname</tt>;
        no mixing long and short names</li>
      <li>The local node must use the exact same node name (including
        host name) that the remote node thinks it has</li>
      <li>The local node must be able to resolve the host name part of
        the node name of the remote node</li>
    </ul>
    <p>So if the remote node is running with node name <tt>foo@mycontainer</tt>,
      you should be able to connect to it with <tt>erl -sname whatever
        -remsh foo@mycontainer</tt>. You can check the node name of the
      remote node by looking at the prompt in the Erlang shell. Note
      that epmd only displays the "local" part of the node name, not the
      host name, so you may be able to open a connection to the remote
      node and still have it rejected and closed if the host name part
      doesn't match.<br>
    </p>
    <p>If <tt>mycontainer</tt> doesn't resolve to the correct IP
      address, you can use an inet configuration file: <a
        moz-do-not-send="true"
        href="http://erlang.org/doc/apps/erts/inet_cfg.html">http://erlang.org/doc/apps/erts/inet_cfg.html</a><br>
      For example, to hard-code an IP address for a host name and force
      the Erlang node to use this file instead of native name
      resolution:</p>
    <p><tt>{host, {10,1,2,3}, ["mycontainer"]}.</tt><tt><br>
      </tt><tt>{lookup, [file]}.</tt><tt><br>
      </tt></p>
    <p>Then pass the name of this file like this:</p>
    <p><tt>erl -sname whatever -remsh foo@mycontainer -kernel inetrc
        '"./myinetrc"'<br>
      </tt></p>
    <p>Hope this helps,<br>
      Magnus</p>
    <p><br>
    </p>
  </body>
</html>