docker 命令报异常permission denied的解决方案

在Linux系统中,新安装docker,输入命令,如:docker images

结果却报异常了

简单理解就是当前用户的连接被拒绝了

解决方案一:

使用管理员权限,命令前加sudo

解决方案二:

给当前用户加入到docker用户组中

sudo groupadd docker #添加docker用户组,这个用户组应该是已存在了
sudo gpasswd -a $USER docker #将当前用户加入到docker用户组中
newgrp docker #更新用户组docker

再执行 docker images

这个就可以正常使用了

补充:Docker -v 对挂载的目录没有权限 Permission denied解决办法

情况描述

今天在使用docker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ --name managertomcat daniu/mytomcat

挂载路径后,进入容器

root@08066d03a043:/usr/local/tomcat# cd webapps/
root@08066d03a043:/usr/local/tomcat/webapps# ls
ls: cannot open directory '.': Permission denied
root@08066d03a043:/usr/local/tomcat/webapps# 

查看webapps提示没有权限。

原因:

centos7中安全模块selinux把权限禁掉了。

有三种方法解决:

1.在运行时加 --privileged=true

[daniu@localhost tomcat]$ docker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ --privileged=true --name managertomcat xuhaixing/mytomcat
c512137b74f3366da73ff80fc1fd232cc76c95b52a4bab01f1f5d89d28185b28
[daniu@localhost tomcat]$ ls

2.临时关闭selinux然后再打开

[daniu@localhost tomcat]# setenforce 0
[daniu@localhost tomcat]# setenforce 1

3.添加linux规则,把要挂载的目录添加到selinux白名单

# 更改安全性文本的格式如下
chcon [-R] [-t type] [-u user] [-r role] 文件或者目录
选顷不参数:
-R :该目录下的所有目录也同时修改;
-t :后面接安全性本文的类型字段,例如 httpd_sys_content_t ;
-u :后面接身份识别,例如 system_u;
-r :后面街觇色,例如 system_r
执行:
chcon -Rt svirt_sandbox_file_t /home/daniu/docker/tomcat/webapps/

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • Docker Secret的管理和使用详解

    一.什么是Docker Secret (一)情景展现 我们知道有的service是需要设置密码的,比如mysql服务是需要设置密码的: version: '3' services: web: image: wordpress ports: - 8080:80 volumes: - ./www:/var/www/html environment: WORDPRESS_DB_NAME=wordpress WORDPRESS_DB_HOST: mysql WORDPRESS_DB_PASSWORD:

  • docker空间爆满导致的进入容器失败的解决方案

    由于问题发生的比较突然,业务催的比较急,所以没来得及截图案发现场,所以现场截图为后期正常的环境. 周一上班,照例进入服务器,进入docker容器 >>> docker exec -i -t xxx /bin/bash Docker error : no space left on device 没空间了? 立马想到查看系统的空间 >>> df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.

  • docker 文件存放路径, 修改端口映射操作方式

    如何获取容器的启动命令 容器早已创建好,如何得知它的启动参数(数据挂载到哪) #假设通过如下命令启动了一个容器 docker run -d --name mysql_cdh \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -v mysql-data:/var/lib/mysql \ --restart=always \ mysql:5.5 --character-set-server=utf8 #如何通过容器名得知启动参数 [root@jenki

  • docker pull拉取超时的解决方案

    最近docker pull镜像的时候非常不稳定,速度慢不说还经常超时失败 Pulling xlxdsj_swagger_ui (swaggerapi/swagger-ui:)... latest: Pulling from swaggerapi/swagger-ui ba3557a56b15: Pull complete 1a18b9f93d41: Pull complete 38ceab6c6432: Pull complete 6104f3bd82cc: Pull complete 750e

  • Springboot服务Docker化自动部署的实现方法

    还在手动将springboot项目打包,然后上传服务器,手动执行启动命令将项目启动吗?你out了!通过Docker配置DockerMaven插件,快速部署,一键将springboot服务器部署到服务器,一键启动,告别传统部署方式,实现自动化运维的第一步,心动吗?快来一起看看~ 微服务部署方式 (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器. (2)通过Maven插件自动部署. 对于数量众多的微服务,手动部署无疑是非常麻烦的做法,

  • Docker 清理的常用方法及问题

    如果你使用 docker 进行大规模开发,但是没有清理策略,那么你的磁盘马上就会被填满,当你真的必须因为产品火爆而要立即交付一些东西时,你就无法交付. 当我们在计算机中运行一个进程时,一旦这个进程完成,所有东西都会随之销毁.容器是我们现在很多人操作的基础设施.一切东西都运行在一个容器上,旨在每个容器有一个进程.当进程完成,容器就退出.但它不会自行清理. Docker 积累的东西 你需要注意这些 已经停止的容器 磁盘卷 镜像 网络 如果有足够的空间,你可能不太关心磁盘空间,但是网络也很重要.默认地

  • 解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    docker-compose.yml文件中允许使用'./'相对路径 version: '3' ... volumes: - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro - ./mongo-volume:/data/db ... 会将当前路径下的init-mongo.js文件挂载到容器中的/docker-entrypoint-initdb.d/init-mongo.js,并且设置为只读方式; 会将当前路径下的mongo-

  • docker 命令报异常permission denied的解决方案

    在Linux系统中,新安装docker,输入命令,如:docker images 结果却报异常了 简单理解就是当前用户的连接被拒绝了 解决方案一: 使用管理员权限,命令前加sudo 解决方案二: 给当前用户加入到docker用户组中 sudo groupadd docker #添加docker用户组,这个用户组应该是已存在了 sudo gpasswd -a $USER docker #将当前用户加入到docker用户组中 newgrp docker #更新用户组docker 再执行 docker

  • Python中Permission denied的解决方案

    运行代码时,出现诸如这样的 文件的权限有可能出问题,不过更多是路径本身有问题.比如,你的文件名是否正确,路径是否正确,路径后面是不是多了什么奇奇怪怪的符号('\n'之类的)有换行符一定要删除. 补充:Python报错:PermissionError: [Errno 13] Permission denied 解决方案详解 出现错误的原因: 1.文件找不到, 2.文件被占用, 3.文件无权限访问, 4.打开的不是文件,而是一个目录 补充:遇到错误:python文件读写权限permission de

  • Nginx报403 forbidden错误 (13: Permission denied)的解决办法

    查看/var/log/nginx/error.log日志显示:xxx 403 forbidden (13: Permission denied)错误.我勒个去~ 引起nginx 403 forbidden通常是三种情况:一是缺少索引文件,二是权限问题,三是SELinux状态. 一.缺少index.html或者index.PHP文件,就是配置文件中index index.html index.htm这行中的指定的文件 server { listen 80; server_name localhos

  • Python报错:PermissionError: [Errno 13] Permission denied的解决办法

    问题描述: 我一直用python处理气象数据,之前写过一个处理气象数据的程序,一直都可以用的,可是昨天我再想处理数据的时候提示我如下错误 Traceback (most recent call last): ...中间忽略 File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\lib\site-packages\xarray\backends\file_manager.py", line 205,

  • Linux中Oracle启动侦听报错TNS:permission denied的解决方法

    前言 最近在开发环境 oracle 启动侦听的时候,出现了 TNS:permission denied 的问题,通过网上和咨询朋友,最终找到了解决方案,现在共享出来给有需要的朋友. 错误描述 [oracle@oracle ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-MAR-2015 15:37:59 Copyright (c) 1991, 2009, Oracle. All rights r

  • 阿里云镜像安装docker报错的问题及解决方案

    问题 使用阿里云镜像安装docker时出现如下报错,具体如下图: Malformed entry 60 in list file /etc/apt/sources.list (Component) 解决方案 注意到报错提示/etc/apt/sources.list 这个文件第60行格式错误,那么尝试把这行注释掉.先打开这个文件: $ sudoedit /etc/apt/sources.list 再使用vim的语法进入编辑模式后,找到第60行的 deb [arch=amd64] https://d

  • Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

    我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下: 1.常规代码 <update id="update" parameterType="com.cq2022.zago.order.entity.Test" > update t_test_l <set > <if test="trnsctWayId != null"

  • 详解Nginx 13: Permission denied 解决方案

    今天在用uwsgi+nginx在部署flask应用时,遇到502的错误,vim /var/log/nginx/error.log查看nginx的错误日志,提示如下错误信息: 2018/07/22 00:46:36 [crit] 15890#15890: *74 connect() to unix:/root/jianshuvue/jianshu.sock failed (13: Permission denied) while connecting to upstream, client: 12

  • Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

    我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下: 1.常规代码 <update id="update" parameterType="com.cq2022.zago.order.entity.Test" > update t_test_l <set > <if test="trnsctWayId != null"

  • 如何免sudo使用docker命令详解

    背景 Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源.Docker提供了一种在安全.可重复的环境中自动部署软件的方式,它的出现拉开了基于云计算平台发布产品方式的变革序幕. 对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一.而因为使用的是sudo安装docker,所以会导致一个问题.以普通用户登录的状况下,在使用 docker images 时必须添加

随机推荐