diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-10-29 02:57:51 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-10-29 02:57:51 +0800 |
| commit | aeb1ab2c3e960c6eb38ee2c9b18519b9b3bd8fa4 (patch) | |
| tree | 4404733e7bce7e41058ee227c8ce1c8fbf9d57a3 /debian-container/lib/container.sh | |
| parent | b25c21a3272416d52e805b5253cc46f59587d4c2 (diff) | |
| download | rutils-aeb1ab2c3e960c6eb38ee2c9b18519b9b3bd8fa4.tar.gz rutils-aeb1ab2c3e960c6eb38ee2c9b18519b9b3bd8fa4.tar.xz | |
Add NAT networking with bridge, veth, DNS, routing, and firewall configuration for containers.
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
Diffstat (limited to 'debian-container/lib/container.sh')
| -rw-r--r-- | debian-container/lib/container.sh | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/debian-container/lib/container.sh b/debian-container/lib/container.sh index b3d8c9b..62ab0b3 100644 --- a/debian-container/lib/container.sh +++ b/debian-container/lib/container.sh @@ -247,6 +247,11 @@ dc_enter() { bind_args+=(--mount "$spec") done + if [[ "$network_mode" == nat ]]; then + dc_network_nat_run _enter "${bind_args[@]}" + return + fi + unshare --mount --uts --ipc --pid --fork --propagation private \ "${DC_NETWORK_UNSHARE_ARGS[@]}" -- bash "$DC_SCRIPT" _enter "$DC_INSTANCE" "${bind_args[@]}" } @@ -255,6 +260,7 @@ dc_enter_rootfs() { dc_bind_load_options "$@" dc_mount_root trap dc_cleanup_mounts EXIT + dc_network_configure_rootfs dc_mount_virtual_filesystems dc_bind_mount_all hostname debian-container @@ -306,6 +312,11 @@ dc_exec() { bind_args+=(--mount "$spec") done + if [[ "$network_mode" == nat ]]; then + dc_network_nat_run _exec "${bind_args[@]}" -- "$@" + return + fi + unshare --mount --uts --ipc --pid --fork --propagation private \ "${DC_NETWORK_UNSHARE_ARGS[@]}" -- \ bash "$DC_SCRIPT" _exec "$DC_INSTANCE" "${bind_args[@]}" -- "$@" @@ -335,6 +346,7 @@ dc_exec_rootfs() { (($# > 0)) || dc_die 'exec 需要一个命令。' dc_mount_root trap dc_cleanup_mounts EXIT + dc_network_configure_rootfs dc_mount_virtual_filesystems dc_bind_mount_all hostname debian-container |
