当前位置: 首页 > 知识库问答 >
问题:

我在dockerfile中创建了一个文件夹,但无法访问它?

督阿苏
2023-03-14

ubuntu中没有/dev/net目录;我想创建一个tun设备。

这是我的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"]

这是错误信息:

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

我想在/dev/net目录中创建一个tun文件

共有1个答案

阴礼骞
2023-03-14

由于sudo权限导致的错误。我希望这也可以,如果你想知道关于sudo如何在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"]
 类似资料:
  • 当然,这是我的错误,但我看不到它和我的理解的差距。谢谢!

  • 问题内容: 我想在此处创建的文件夹中创建一个文本文件。 但是此代码不会将文本文件创建到该文件夹​​中。而是将文本文件放置在该文件夹之外。 问题答案: java.io.File的构造函数之一带有一个父目录。您可以改为:

  • 我正在使用path标准(使用maven war)将webapp部署到tomcat instalation目录。问题是我在webapp路径和浏览器中有一个javascript文件夹,我无法访问该文件夹。我已经检查了文件是否创建到正确的文件夹,他们在那里! 如果我尝试在浏览器上运行 给我“404页未找到”错误。 如果我把js文件夹放在根目录(而不是标准目录)中,一切都正常。

  • 获取以下错误: 线程“main”java.io.FileNotFoundException出现异常:config.properties(系统找不到指定的文件)在java.io.FileInputStream.Open(本机方法)在java.io.FileInputStream.(FileInputStream.java:138)在java.io.FileInputStream.(FileInput

  • 我正在为MariaDB中的拆分字符串创建一个过程,但它给出了一个错误 “#1064-您的SQL语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以了解使用近‘TRUNCATE TABLE的正确语法。”

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire