Loading...
Loading...
A homelab build to create an isolated ICS/OT security sandbox using GNS3, Docker containers, a Kali VM, OpenPLC and a Fuxa HMI stalled when services inside containers were unreachable. The author discovered GNS3 binds container namespaces directly to its virtual switch, and many minimalist containers omit user-space diagnostic tools. Troubleshooting required inspecting /proc/net/tcp to decode raw hexadecimal socket state to prove services were listening, and then tracing subnet conflicts, kernel
&#32; submitted by &#32; <a href="https://www.reddit.com/user/AdvertisingFancy7011"> /u/AdvertisingFancy7011 </a> <br/> <span><a href="https://sanyamserver.online/posts/docker-networking/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1tt7s56/docker_networking_explained_in_plain_english/">[comments]</a></span>
A homelab build to create an isolated ICS/OT security sandbox using GNS3, Docker containers, a Kali VM, OpenPLC and a Fuxa HMI stalled when services inside containers were unreachable. The author discovered GNS3 binds container namespaces directly to its virtual switch, and many minimalist containers omit user-space diagnostic tools. Troubleshooting required inspecting /proc/net/tcp to decode raw hexadecimal socket state to prove services were listening, and then tracing subnet conflicts, kernel routing and firewall rules that made interfaces appear ghosted. The piece highlights pitfalls when mixing GNS3 with containers, the need to understand Linux kernel network namespaces, and practical lessons for building isolated ICS labs securely.
GitLab CI/CD runners can be hosted locally using Docker to avoid cloud costs and reduce dependency management. The article shows how to create a persistent runner config volume, register a runner with gitlab/gitlab-runner, and run it with the Docker socket mounted so jobs can spawn sibling containers. It highlights exposing ports for services served by CI jobs (e.g., mapping container port 8081 to localhost) and demonstrates entering the running container to install additional packages or build a custom runner image via a Dockerfile. Keeping the container running preserves the runner; the approach simplifies cleanup and lets developers create ephemeral or persistent runners without extra cloud expense.
&#32; submitted by &#32; <a href="https://www.reddit.com/user/iximiuz"> /u/iximiuz </a> <br/> <span><a href="https://labs.iximiuz.com/tutorials/container-registry-from-scratch">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/programming/comments/1tki1qd/how_container_registries_work_pushing_and_pulling/">[comments]</a></span>