mirror of
https://github.com/minoplhy/docker-ripe-atlas.git
synced 2025-04-21 20:36:58 +00:00
66 lines
2.2 KiB
Markdown
66 lines
2.2 KiB
Markdown
# RIPE Atlas Docker Image
|
|
|
|
This is the [RIPE Atlas software probe](https://atlas.ripe.net/docs/software-probe/) packaged as a Docker image.
|
|
|
|
[](https://dev.azure.com/nekomimiswitch/General/_build/latest?definitionId=83&branchName=master)
|
|
|
|
## Running
|
|
|
|
First we start the container:
|
|
|
|
```shell
|
|
docker run -d \
|
|
--restart=always \
|
|
--memory=256m \
|
|
--cap-add=SYS_ADMIN --cap-add=CAP_NET_RAW --cap-add=CAP_CHOWN \
|
|
--mount type=tmpfs,destination=/var/atlasdata \
|
|
-v /var/atlas-probe/etc:/var/atlas-probe/etc \
|
|
-v /var/atlas-probe/status:/var/atlas-probe/status \
|
|
--name ripe-atlas \
|
|
jamesits/ripe-atlas:latest
|
|
```
|
|
|
|
Then we fetch the generated public key:
|
|
|
|
```shell
|
|
cat /var/atlas-probe/etc/probe_key.pub
|
|
```
|
|
|
|
[Register](https://atlas.ripe.net/apply/swprobe/) the probe with your public key.
|
|
|
|
## Caveats
|
|
|
|
### IPv6
|
|
|
|
Docker's IPv6 support is still [like shit](https://github.com/moby/moby/issues/25407). As a workaround, you can use IPv6 NAT like this:
|
|
|
|
```shell
|
|
cat > /etc/sysctl.d/50-docker-ipv6.conf <<EOF
|
|
net.ipv6.conf.eth0.accept_ra=2
|
|
net.ipv6.conf.all.forwarding=1
|
|
net.ipv6.conf.default.forwarding=1
|
|
EOF
|
|
sysctl -p /etc/sysctl.d/50-docker-ipv6.conf
|
|
docker network create --ipv6 --subnet=fd00:a1a3::/48 ripe-atlas-network
|
|
docker run -d --restart=always -v /var/run/docker.sock:/var/run/docker.sock:ro -v /lib/modules:/lib/modules:ro --cap-drop=ALL --cap-add=NET_RAW --cap-add=NET_ADMIN --cap-add=SYS_MODULE --net=host --name=ipv6nat robbertkl/ipv6nat:latest
|
|
```
|
|
|
|
Then start the RIPE Atlas container with argument `--net=ripe-atlas-network`.
|
|
|
|
Note this might break your network and your mileage may vary. You should swap `eth0` with your primary network adapter name, and if you use static IPv6 assignment instead of SLAAC, change `accept_ra` to `0`.
|
|
|
|
### Auto Update
|
|
|
|
Use this recipe for auto updating the docker container.
|
|
|
|
```shell
|
|
docker run -d -v /var/run/docker.sock:/var/run/docker.sock --name watchtower containrrr/watchtower --cleanup --label-enable
|
|
```
|
|
|
|
Then start the RIPE Atlas container with argument `--label=com.centurylinklabs.watchtower.enable=true`.
|
|
|
|
### Backup
|
|
|
|
All the config files are stored at `/var/atlas-probe`. Just backup it.
|
|
|