linux 建立文件夹 拒绝,linux – Docker:使用ADD添加的文件夹上的权限被拒绝

我正在尝试使用docker配置

postgresql安装.

FROM ubuntu:13.10

ADD . /db

# install postgres

# ...

RUN chown postgres:postgres /db -R && \

chmod 700 /db -R

USER postgres

RUN /etc/init.d/postgresql start &&\

createdb test &&\

psql -d test -f /db/all.sql

我可以访问文件夹/ db,但不能访问/ db / plpgsql(包含/db/all.sql执行的文件)

我在/ db / plpgsql上尝试了chmod 777,但它也不起作用,权限被拒绝.

postgres@c364bdd94652:/$ls -l | grep db

drwxrwxrwx 5 postgres postgres 4096 Jul 10 17:39 db

postgres@c364bdd94652:/$cd db/

postgres@c364bdd94652:/db$ls -l

-rwxrwxrwx 1 postgres postgres 2567 Jul 10 16:34 Dockerfile

-rwxrwxrwx 1 postgres postgres 358 Jul 10 14:53 all.sql

-rwxrwxrwx 1 postgres postgres 642 Jul 10 15:35 init.sql

drwxrwxrwx 10 postgres postgres 4096 Jul 10 16:36 plpgsql

postgres@c364bdd94652:/db$cd plpgsql/

bash: cd: plpgsql/: Permission denied

我如何访问该文件夹?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在Linux系统中尝试使用`sudo docker`命令时,收到"command not found"的错误,这通常意味着你的系统找不到名为`docker`的命令。这可能是由于以下几个原因: 1. Docker没有安装:`sudo`是一个用于执行具有管理员权限的命令的工具,如果你没有安装Docker,那么自然找不到这个命令。 2. Docker不在PATH环境变量中:`docker`命令可能位于你的系统路径之外,所以`sudo`无法找到它。检查`$PATH`环境变量是否包含了Docker安装目录下的bin文件夹。 3. Docker服务未启动:即使安装了,如果Docker服务没有运行,你同样会遇到这个问题。你可以使用`systemctl status docker`或`service docker status`来确认Docker服务是否正在运行。 4. 使用的是旧版本的sudo:如果sudo配置有问题,或者sudo不支持直接执行可执行文件(比如docker),你可能需要在`sudo`后加上`docker`的完整路径。 解决方法如下: - **检查安装**:确保已经安装了Docker,可以使用`docker --version`来查看版本信息。 - **更新PATH**:添加Docker到系统PATH,编辑`~/.bashrc`或`~/.bash_profile`,增加`export PATH=$PATH:/usr/local/bin`。 - **启动服务**:如果Docker服务未启动,使用`sudo systemctl start docker`(基于systemd)或`sudo service docker start`启动。 - **确认sudo配置**:确认sudo配置是否允许直接执行docker命令,或者使用`sudo docker`后面加上完整的docker命令路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值