https://github.com/jamesits/docker-ripe-atlas
This is the RIPE Atlas software probe packaged as a Docker image.
https://github.com/jamesits/docker-ripe-atlas
ripe-atlas
Last synced: 2 months ago
JSON representation
This is the RIPE Atlas software probe packaged as a Docker image.
- Host: GitHub
- URL: https://github.com/jamesits/docker-ripe-atlas
- Owner: Jamesits
- License: gpl-3.0
- Created: 2020-04-17T10:55:30.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-27T16:01:17.000Z (2 months ago)
- Last Synced: 2025-03-27T17:22:24.531Z (2 months ago)
- Topics: ripe-atlas
- Language: Dockerfile
- Homepage: https://hub.docker.com/r/jamesits/ripe-atlas
- Size: 77.1 KB
- Stars: 166
- Watchers: 11
- Forks: 24
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RIPE Atlas Docker Image
This is the [RIPE Atlas software probe](https://atlas.ripe.net/docs/getting-started/what-is-ripe-atlas) packaged as a Docker image.


[](http://hub.docker.com/r/jamesits/ripe-atlas)## Usage
### Requirements
* 1 CPU core (of course)
* 20MiB memory
* 100MiB HDD
* A Linux installation with Docker installed
* Internet access### Tags
The following prebuilt tags are available at [Docker Hub](https://hub.docker.com/r/jamesits/ripe-atlas):
- `latest`, `latest-probe`, `latest-anchor`: latest stable version
- `v{version}`, `v{version}-probe`, `v{version}-anchor`: matches upstream version
- `edge`, `edge-probe`, `edge-anchor`: whatever from the master branchSince version 5090, we do not provide `-{arch}` tags anymore.
### Running
You can run the container manually with any OCI container runtime of your choice. There are some templates:
#### Using [Docker Compose](https://docs.docker.com/compose/)
An example [`docker-compose.yaml`](/contrib/docker-compose/docker-compose.yaml) is provided.
```shell
cd contrib/docker-compose
docker compose pull
docker compose up -d
```#### Using [`podman-systemd.unit`](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html)
```shell
install --user=root --group=root --target /etc/containers/systemd/ -- contrib/podman-quadlet/*.container
systemctl reload
systemctl start ripe-atlas.service
```### Registering the Probe
Fetch the generated public key:
```shell
cat /etc/ripe-atlas/probe_key.pub
```[Register](https://atlas.ripe.net/apply/swprobe/) the probe with your public key. After the registration being manually processed, you'll see your new probe in your account.
## Building
If you don't want to use the prebuilt image hosted on the Docker Hub, you can build your own image.
```shell
DOCKER_BUILDKIT=1 docker build --tag localhost/ripe-atlas:latest-probe --target ripe-atlas-probe .
```Note that building this container image requires [BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/).
## Caveats
### IPv6
[Docker 27.0.1](https://github.com/moby/moby/releases/tag/v27.0.1) enabled IPv6 (incl. `ip6tables` and NATv6) by default.
If you are on older versions: Docker does not enable IPv6 by default. If you want IPv6 support, some level of setup and a basic understanding of IPv6 is required. Swarm mode & some Kubernetes implementation supports IPv6 too with extra configuration.
#### Using native address assignment
If you happened to have a block of static IPv6 addresses routed to your host, you can directly assign one of the addresses to the container. Edit `/etc/docker/daemon.json` and add native IPv6 address blocks, then restart the Docker daemon. An example:
```json
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:a1a3::/48"
}
```Notes:
- These config work on Docker for Linux only
- If `daemon.json` exists, merge the config lines instead of directly overwriting it; if it doesn't exist, create it manually
- For more info, see [the official doc](https://docs.docker.com/config/daemon/ipv6/)#### Using NAT (NPTv6)
If your ISP does not conform to [BCOP 690](https://www.ripe.net/publications/docs/ripe-690) (very common), and/or your router cannot route smaller blocks of IPv6 to one server even if it has been assigned a block of valid IPv6 addresses (also very common), the method above might not work for you. As a workaround, you can setup NAT with either [Docker's builtin experimental IPv6 NAT support](https://blog.iphoting.com/blog/2021/02/10/ipv6-docker-docker-compose-and-shorewall6-ip6tables/), `robbertkl/docker-ipv6nat` or similar projects. Manual iptables/nftables NAT setup is also possible, but *hanc marginis exiguitas non caperet*.
Firstly, edit kernel parameters to enable IPv6 routing.
```shell
cat > /etc/sysctl.d/50-docker-ipv6.conf <