expose-netns

This commit is contained in:
baiobelfer 2024-10-17 10:26:23 +02:00
commit 1490f8f520
3 changed files with 76 additions and 0 deletions

50
Dockerfile Normal file
View File

@ -0,0 +1,50 @@
# Użyj najnowszego obrazu bazowego Debian
FROM debian:latest
# Ustaw zmienną środowiskową DEBIAN_FRONTEND na noninteractive, aby uniknąć interaktywnych promptów podczas instalacji pakietów
ENV DEBIAN_FRONTEND=noninteractive
# Aktualizacja pakietów i instalacja wymaganych narzędzi wraz z python3 i python3-scapy
RUN apt-get update && apt-get install -y \
iproute2 \
curl \
vim \
tmux \
git \
htop \
mc \
sudo \
wget \
gnupg \
tcpdump \
termshark \
python3 \
python3-scapy \
iputils-ping \
traceroute \
ipcalc
# Ustawienie hasła dla użytkownika root
RUN echo "root:rootpass" | chpasswd
# Tworzenie nowego użytkownika 'user' z hasłem 'pass' i dodanie do grupy sudo
RUN useradd -m -s /bin/bash user && \
echo "user:pass" | chpasswd && \
usermod -aG sudo user
# Przekopiowanie folderu `app` do kontenera w ścieżce `/home/user/app`
COPY ./app /home/user/app
# Zmiana właściciela folderu app na użytkownika `user`
RUN chown -R user:user /home/user/app
# Ustawienie domyślnego użytkownika na 'user'
USER user
# Ustawienie punktu wejścia, który uruchomi serwer HTTP w folderze `~/app` na porcie 8888
WORKDIR /home/user/app
CMD ["python3", "-m", "http.server", "8888"]
# Expose port 8888 to allow traffic through it
EXPOSE 8888

2
__ Normal file
View File

@ -0,0 +1,2 @@
f() { sudo docker run --rm -dit --privileged --network none --name "$1" deb su - user; }; f deb1

24
expose-netns.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 <container id or name>"
exit 1
fi
echo "expose container $1 netns"
NETNS=`sudo docker inspect -f '{{.State.Pid}}' $1`
if [ ! -d /var/run/netns ]; then
sudo mkdir /var/run/netns
fi
if [ -f /var/run/netns/$NETNS ]; then
sudo rm -rf /var/run/netns/$NETNS
fi
sudo ln -s /proc/$NETNS/ns/net /var/run/netns/$NETNS
echo "done. netns: $NETNS"
echo "============================="
echo "current network namespaces: "
echo "============================="
ip netns