Local DNS server for exposing docker containers on bridge networks
Project description
DCDC: Docker Container Domain Connector
DCDC provides a local DNS server for exposing docker containers on bridge networks.
This allows you to easily reference containers by name instead of exposing and binding IP addresses / ports on the localhost. Names are in the form of container-name.compose-project-name.dcdc
% dig mysql.my-project.dcdc
; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> mysql.my-project.dcdc
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59483
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;mysql.my-project.dcdc. IN A
;; ANSWER SECTION:
mysql.my-project.dcdc. 51 IN A 192.168.144.3
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Fri May 10 20:56:11 AEST 2024
;; MSG SIZE rcvd: 71
Setup
Install DCDC
# TODO: upload to pypi
pip install docker-container-domain-conenctor
Configure systemd-resolved
Edit /etc/systemd/resolved.conf
[Resolve]
DNS=127.0.0.1:9953#dcdc
Run DCDC
dcdc
Restart systemd-resolved
sudo systemctl restart systemd-resolved
Test
dig some.container.dcdc
Usage
The main application is provided by the dcdc
command.
usage: dcdc [-h] [-v] [--log-dir PATH] [--version] [--host HOST] [--port PORT] [--tcp | --udp]
[--root-domain ROOT_DOMAIN]
dcdc (Docker Container Domain Connector) is a dns server that allows mapping docker containers to their currently running bridge ip address.
options:
-h, --help show this help message and exit
-v, --verbose Increase logging verbosity
--log-dir PATH Set where log files should be stored. Defaults to /var/tmp
--version show program's version number and exit
--host HOST Host (IP) to bind to. Use --ips to see available. Defaults to localhost.
--port PORT Port to bind to. Defaults to 9953.
--tcp Use TCPv4 socket for transport.
--udp Use UDPv4 socket for transport. (default)
--root-domain ROOT_DOMAIN
Root domain for queries (e.g. <query>.<root>). Does not have to be a TLD, can
be any level of domain. Defaults to ".dcdc".
This package also provies the dcdc-ips
utility command which will print available IP addresses.
Licence
This project is licenced under the MIT Licence - see LICENCE
.
Authors
A project by Nicholas Hairs - www.nicholashairs.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file docker_container_domain_connector-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: docker_container_domain_connector-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a403643b0b5dd2f2ffa8129066475c4c90db71907d5f6ba6f41798159d6fe2e |
|
MD5 | 192b5dfffa9c79745b88994d9254775d |
|
BLAKE2b-256 | 9775be16a9727763ae258f4973da098d76726726fd57d3e9b2778aee96d2e24f |