diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-01-08 17:07:48 +0000 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-09 03:32:52 +0000 |
| commit | 6b18259bd97f6d350f18eccbdd0b81fbc2bd982e (patch) | |
| tree | 6e114be575ad7409ac8681b420004c13335d297e /recipes-containers/vcontainer/files | |
| parent | 3c01c9aaa14b5385cbdb176a4c721ecc8fa45088 (diff) | |
| download | meta-virtualization-6b18259bd97f6d350f18eccbdd0b81fbc2bd982e.tar.gz | |
vdkr: enable Docker bridge networking
Enable Docker's default bridge network (docker0, 172.17.0.0/16) inside
the QEMU VM to allow multiple containers to listen on the same internal
port with different host port mappings.
Changes:
- Add iptables package to vdkr-rootfs-image for Docker NAT rules
- Change dockerd options in vdkr-init.sh:
- Set --iptables=true (was false)
- Remove --bridge=none to enable default docker0 bridge
This enables the workflow:
vdkr run -d -p 8080:80 --name nginx1 nginx:alpine
vdkr run -d -p 8081:80 --name nginx2 nginx:alpine
# Both work - each container gets its own 172.17.0.x IP
Previously with --network=host (the old default), both containers would
try to bind port 80 on the VM's single IP, causing conflicts.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-containers/vcontainer/files')
| -rwxr-xr-x | recipes-containers/vcontainer/files/vdkr-init.sh | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/recipes-containers/vcontainer/files/vdkr-init.sh b/recipes-containers/vcontainer/files/vdkr-init.sh index 7cfe12af..efe56049 100755 --- a/recipes-containers/vcontainer/files/vdkr-init.sh +++ b/recipes-containers/vcontainer/files/vdkr-init.sh | |||
| @@ -92,9 +92,10 @@ start_dockerd() { | |||
| 92 | log "Starting Docker daemon..." | 92 | log "Starting Docker daemon..." |
| 93 | DOCKER_OPTS="--data-root=/var/lib/docker" | 93 | DOCKER_OPTS="--data-root=/var/lib/docker" |
| 94 | DOCKER_OPTS="$DOCKER_OPTS --storage-driver=overlay2" | 94 | DOCKER_OPTS="$DOCKER_OPTS --storage-driver=overlay2" |
| 95 | DOCKER_OPTS="$DOCKER_OPTS --iptables=false" | 95 | # Enable iptables for Docker bridge NAT and port forwarding |
| 96 | DOCKER_OPTS="$DOCKER_OPTS --iptables=true" | ||
| 96 | DOCKER_OPTS="$DOCKER_OPTS --userland-proxy=false" | 97 | DOCKER_OPTS="$DOCKER_OPTS --userland-proxy=false" |
| 97 | DOCKER_OPTS="$DOCKER_OPTS --bridge=none" | 98 | # Use default docker0 bridge (172.17.0.0/16) for container networking |
| 98 | DOCKER_OPTS="$DOCKER_OPTS --host=unix:///var/run/docker.sock" | 99 | DOCKER_OPTS="$DOCKER_OPTS --host=unix:///var/run/docker.sock" |
| 99 | DOCKER_OPTS="$DOCKER_OPTS --exec-opt native.cgroupdriver=cgroupfs" | 100 | DOCKER_OPTS="$DOCKER_OPTS --exec-opt native.cgroupdriver=cgroupfs" |
| 100 | DOCKER_OPTS="$DOCKER_OPTS --log-level=info" | 101 | DOCKER_OPTS="$DOCKER_OPTS --log-level=info" |
