Hi David, We currently have an open ticket for documenting network usage:
- JAMES-2333 Docker links concidered legacy [1] [1] https://issues.apache.org/jira/browse/JAMES-2333 Would you like to contribute some documentation on the topic? Benoit Tellier On 02/11/2019 19:59, David Leangen wrote: > > Hi, > > Just for anybody who ever somehow stumbles across this thread, I wanted to > provide some closure. > > I did not know that there was a difference between a named network in Docker, > and the default bridge network. (I am currently using v19.) The differences > are described here: > > > https://docs.docker.com/network/bridge/##differences-between-user-defined-bridges-and-the-default-bridge > > <https://docs.docker.com/network/bridge/##differences-between-user-defined-bridges-and-the-default-bridge> > > > Connecting to Cassandra is a piece of cake if you use a named network. Note > that all containers need to belong to the same network. Docker will handle > all the networking automatically. > > > That’s all there was to it. For some reason it took me a very long time to > actually find that information. > > > Cheers, > =David > > > >> On Oct 29, 2019, at 19:14, David Leangen <apa...@leangen.net> wrote: >> >> >> Hi Benoit, >> >> Thank you very much for your hints. That gives me some ideas of a few more >> things I can investigate. >> >> Cheers, >> =David >> >> >> >> >>> On Oct 29, 2019, at 12:58, Tellier Benoit <btell...@apache.org> wrote: >>> >>> Hello David, >>> >>> - 1. Does the `cassandra` DNS entry within the James container resolves >>> to Cassandra? (this can be achieved with links or network). >>> >>> - 2. A restarting Cassandra (with many data in the commitlog) might >>> reject clients. Monitor Cassandra logs to check if this happens. >>> >>> I also noticed you used an unoffical image for Cassandra. Could this be >>> a cause for your issue? Are you sure cassandra is well started after >>> your configuration modifications? >>> >>> Cheers, >>> >>> Benoit >>> >>> On 28/10/2019 13:07, David Leangen wrote: >>>> >>>> Hi! >>>> >>>> I am sure the problem is due to my inexperience with Docker and Cassandra, >>>> and even more so networking between multiple Docker containers… but I have >>>> tried everything I can think of and would like to ask for some help. 😅 >>>> >>>> I am getting this error: >>>> >>>> [root@e5cc3846b51c apache-james-3.3.0]# java >>>> -Dworking.directory=/opt/apache-james-3.3.0 -jar >>>> server/container/guice/cassandra-guice/target/james-server-cassandra-guice.jar >>>> 2019-10-28 05:51:54,981 WARN [main] - >>>> [org.apache.james.modules.mailbox.ResilientClusterProvider]- Error >>>> establishing Cassandra connection. Next retry scheduled in PT5S ms >>>> com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) >>>> tried for query failed (tried: /172.17.0.2:9042 >>>> (com.datastax.driver.core.exceptions.TransportException: >>>> [/172.17.0.2:9042] Cannot connect)) >>>> >>>> >>>> The error is shown when I try to run JAMES from within a Docker container. >>>> >>>> Cassandra is up and running, and ought to be available via the IP address >>>> 172.17.0.2, on port 9042. >>>> >>>> [root@james ~]# ip addr >>>> 1: lo: <SNIP> >>>> 2: eth0: <SNIP> >>>> 3: eth1: <SNIP> >>>> 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state >>>> UP group default >>>> link/ether 02:42:76:5f:17:bb brd ff:ff:ff:ff:ff:ff >>>> inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 >>>> valid_lft forever preferred_lft forever >>>> inet6 fe80::42:76ff:fe5f:17bb/64 scope link >>>> valid_lft forever preferred_lft forever >>>> 10: veth81426b0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc >>>> noqueue master docker0 state UP group default >>>> link/ether 1a:70:e2:f3:7e:70 brd ff:ff:ff:ff:ff:ff link-netnsid 0 >>>> inet6 fe80::1870:e2ff:fef3:7e70/64 scope link >>>> valid_lft forever preferred_lft forever >>>> 12: vethc13d660@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc >>>> noqueue master docker0 state UP group default >>>> link/ether 5a:fd:2d:ad:df:12 brd ff:ff:ff:ff:ff:ff link-netnsid 1 >>>> inet6 fe80::58fd:2dff:fead:df12/64 scope link >>>> valid_lft forever preferred_lft forever >>>> >>>> The two virtual ethernet ports are for the james and cassandra containers. >>>> >>>> Here is the run command for cassandra: >>>> >>>> docker run \ >>>> -dit \ >>>> -v /home/cassandra/conf:/opt/cassandra/latest/conf \ >>>> -v /home/cassandra/data:/data \ >>>> -v /home/cassandra/commitlog:/commitlog \ >>>> -v /home/cassandra/saved_caches:/saved_caches \ >>>> -v /home/cassandra/hints:/hints \ >>>> -p 7000:7000 \ >>>> -p 7001:7001 \ >>>> -p 7199:7199 \ >>>> -p 9042:9042 \ >>>> -p 9160:9160 \ >>>> --ulimit memlock=-1:-1 \ >>>> --memory='1g' \ >>>> --name=cassandra \ >>>> dleangen/cassandra:3.11.4 >>>> >>>> >>>> Here is docker ps from the host: >>>> >>>> [root@james ~]# docker ps >>>> CONTAINER ID IMAGE COMMAND >>>> CREATED STATUS PORTS >>>> >>>> NAMES >>>> e5cc3846b51c dleangen/james:3.3.0 "/bin/bash" 7 >>>> minutes ago Up 7 minutes >>>> >>>> youthful_pascal >>>> 1fefe86df493 dleangen/cassandra:3.11.4 "cassandra -f" 9 >>>> minutes ago Up 9 minutes 0.0.0.0:7000-7001->7000-7001/tcp, >>>> 0.0.0.0:7199->7199/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9160->9160/tcp >>>> cassandra >>>> >>>> Here is the /etc/hosts file in the Cassandra container: >>>> >>>> bash-4.2$ more /etc/hosts >>>> 127.0.0.1 localhost >>>> ::1 localhost ip6-localhost ip6-loopback >>>> fe00::0 ip6-localnet >>>> ff00::0 ip6-mcastprefix >>>> ff02::1 ip6-allnodes >>>> ff02::2 ip6-allrouters >>>> 172.17.0.2 1fefe86df493 >>>> >>>> >>>> Cassandra is up. I tested that it is indeed available from within the >>>> Docker container over 127.0.0.1. >>>> >>>> So how the heck do I get my james container to be able to connect to it?? >>>> >>>> (I plan to use Docker Compose later… right now I’m trying to just connect >>>> my containers directly.) >>>> >>>> >>>> Thank you in advance for your help!!! 😇 >>>> >>>> Cheers, >>>> =David >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org >>> For additional commands, e-mail: server-user-h...@james.apache.org >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org >> For additional commands, e-mail: server-user-h...@james.apache.org >> > > --------------------------------------------------------------------- To unsubscribe, e-mail: server-user-unsubscr...@james.apache.org For additional commands, e-mail: server-user-h...@james.apache.org