summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-09-19 20:25:10 -0500
committerbaude <bbaude@redhat.com>2019-09-20 09:13:00 -0500
commitc173653df9bdbdaa8e99e76870c462e923d8540a (patch)
tree36513790b5334eb3ee21debd20a433e09bd4c2c4
parent5681c8c8975099bd613522b26bab77b15bb3d890 (diff)
add podman minitutorial
Signed-off-by: baude <bbaude@redhat.com>
-rw-r--r--README.md4
-rw-r--r--README_PODMAN.md55
2 files changed, 59 insertions, 0 deletions
diff --git a/README.md b/README.md
index 55ce6e6..2d57613 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,10 @@ the pod and its IP address are added to a network specific hosts file that dnsma
is removed from the network, it will remove the entry from the hosts file. Each CNI network will have its own dnsmasq
instance.
+The *dnsplugin* plugin was specifically designed for the [Podman](https://github.com/containers/libpod) container engine.
+Follow the [mini-tutorial](README_PODMAN.md) to use it with Podman.:w
+
+
## Usage
The dnsname plugin can be enabled in the cni network configuration file.
diff --git a/README_PODMAN.md b/README_PODMAN.md
new file mode 100644
index 0000000..15ba313
--- /dev/null
+++ b/README_PODMAN.md
@@ -0,0 +1,55 @@
+# Using the dnsname plugin with Podman
+
+The *dnsname* plugin allows containers to resolve each other by name. The plugin adds each
+container's name to an instance of a dnsmasq server. The plugin is enabled through adding it to a network's
+CNI configuration. The containers will only be able to resolve each other if they are on the same CNI network.
+
+**Note**: This plugin does not work with rootless containers.
+
+This tutorial assumes you already have Podman, containernetwork-plugins, and a golang development environment installed.
+
+## Install dnsmasq
+
+Using your package manager, install the *dnsmasq* package. For Fedora, this would be:
+`sudo dnf install dnsmasq`
+
+
+## Build and install
+
+1. using git, clone the *github.com/containers/dnsname* repository.
+2. make install PREFIX=/usr -- this will install the dnsname plugin into /usr/libexec/cni where your CNI plugins
+should already exist.
+
+## Configure a CNI network for Podman
+
+1. Create a new network using `podman network create`. For example, `podman network create foobar` will suffice.
+2. Using your favorite editor, edit `/etc/cni/net.d/foobar.conflist` and add the following with the plugins stanza:
+```
+ {
+ "type": "dnsname",
+ "domainName": "podman.io"
+ }
+
+```
+The following example [configuration file](example/cni-podman1.conflist) shows a usable example for Podman.
+
+## Example: container name resolution
+
+1. sudo podman run -dt --name web --network foobar quay.io/libpod/alpine_nginx:latest
+ 5139d65d22135e9ecab511559d863754550894a32285befd94dab231017048c2
+
+ Note: we use the --network foobar here. Also, in this test image, the nginx server will respond with
+ *podman rulez* on an http request.
+2. sudo podman run -it --name client --network cni-podman1 quay.io/libpod/alpine_nginx:latest curl http://web/
+podman rulez
+
+
+## Enabling name resolution on the default Podman network
+After making sure the *dnsplugin* is functioning properly, you can add name resolution to your default Podman
+network. This can be done two different ways:
+
+1. Add the *dnsname* plugin as described in above to your default Podman network. This default network is
+usually `/etc/cni/net.d/87-podman-bridge.conflist`.
+
+2. Add a new network as described above and then edit `/etc/containers/libpod.conf` and change the
+`cni_default_network` key to your network name.