expose-netns
This commit is contained in:
commit
1490f8f520
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
f() { sudo docker run --rm -dit --privileged --network none --name "$1" deb su - user; }; f deb1
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue