0

There is no /dev/net directory in ubuntu;I want to create a tun device.

This is my dockerfile:

FROM ubuntu

RUN apt-get update && apt-get -y install net-tools iptables iproute2
RUN mkdir -p /dev/net/
RUN cd /dev/net/
RUN ["mknod", "/dev/net/tun", "c","10","200"]

This is error info:

PS C:\Users\Penn\AndroidStudioProjects\TunVpn\server> docker build -t tunvpn:v1 .
[+] Building 1.9s (7/9)
 => [internal] load build definition from Dockerfile                                                                                       0.1s
 => => transferring dockerfile: 370B                                                                                                       0.0s
 => [internal] load .dockerignore                                                                                                          0.1s
 => => transferring context: 2B                                                                                                            0.0s
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                                           1.3s
 => [1/6] FROM docker.io/library/ubuntu@sha256:3c9c713e0979e9bd6061ed52ac1e9e1f246c9495aa063619d9d695fb8039aa1f                            0.0s
 => CACHED [2/6] RUN apt-get update && apt-get -y install net-tools iptables iproute2                                                      0.0s
 => CACHED [3/6] RUN mkdir -p /dev/net/                                                                                                    0.0s
 => ERROR [4/6] RUN cd /dev/net/                                                                                                           0.4s
------
 > [4/6] RUN cd /dev/net/:
#7 0.348 /bin/sh: 1: cd: can't cd to /dev/net/
------
executor failed running [/bin/sh -c cd /dev/net/]: exit code: 2

I want to create a tun file in the /dev/net directory

Penn
  • 1
  • Are you planning to make your running directory to be `/dev/net`? You can try using `WORKDIR` instead by replacing `RUN cd /dev/net/` with `WORKDIR /dev/net/`. Let me know if it doesn't work – tax evader Apr 21 '21 at 02:56

1 Answers1

0

Error due to sudo permission. I hope this works also if you want to know details about how sudo works inside the docker Sudo inside docker

FROM ubuntu

RUN apt-get update && apt-get -y install net-tools iptables iproute2

#This is needed to avoid prompts

ENV DEBIAN_FRONTEND=noninteractive

# First add user as sudo in case issue in creating directory

RUN useradd -m docker && echo "docker:docker" | chpasswd && adduser docker sudo

CMD ["mkdir", "-p","/dev/net/"]

RUN cd /dev/net/
RUN ["mknod", "/dev/net/tun", "c","10","200"]
iampritamraj
  • 196
  • 2
  • 6