尝试连接到Docker守护程序套接字时权限被拒绝

时间:2017-09-13 16:22:12

标签: ubuntu docker unix-socket

在Ubuntu 16.04 LTS上尝试使用docker login命令时,将显示以下交战消息:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>    
#include <stdlib.h>   

const int MAXSIZE = 50;
void Encrypt(FILE *File, char file[MAXSIZE], int i)  
{
    File = fopen("message.txt", "r+");    

    for (i = 0; i < 6; i++)
    {

        if (file[i] == 'a')
        {
            file[i] = 'F';
            fputc(file[i], File);
        }

        if (file[i] == 'b')

        {
            file[i] = 'G';
            fputc(file[i], File);
        }

        if (file[i] == 'c')
        {
            file[i] = 'Z';
            fputc(file[i], File);
        }

        if (file[i] == 'd')
        {
            file[i] = 'V';
            fputc(file[i], File);
        }


        if (file[i] == 'e')
        {
            file[i] = 'A';
            fputc(file[i], File);
        }


        if (file[i] == 'f')
        {
            file[i] = 'B';
            fputc(file[i], File);
        }


        if (file[i] == 'g')
        {
            file[i] = 'G';
            fputc(file[i], File);
        }


        if (file[i] == 'h')
        {
            file[i] = 'X';
            fputc(file[i], File);
        }

        if (file[i] == 'i')
        {
            file[i] = 'E';
            fputc(file[i], File);
        }

        if (file[i] == 'j')
        {
            file[i] = 'J';
            fputc(file[i], File);
        }

        if (file[i] == 'k')
        {
            file[i] = 'I';
            fputc(file[i], File);
        }

        if (file[i] == 'l')
        {
            file[i] = 'K';
            fputc(file[i], File);
        }

        if (file[i] == 'm')
        {
            file[i] = 'O';
            fputc(file[i], File);
        }


        if (file[i] == 'n')
        {
            file[i] = 'V';
            fputc(file[i], File);
        }

        if (file[i] == 'o')
        {
            file[i] = 'U';
            fputc(file[i], File);
        }

        if (file[i] == 'q')
        {
            file[i] = 'Y';
            fputc(file[i], File);
        }

        if (file[i] == 'r')
        {
            file[i] = 'N';
            fputc(file[i], File);
        }


        if (file[i] == 's')
        {
            file[i] = 'P';
            fputc(file[i], File);
        }


        if (file[i] == 't')
        {
            file[i] = 'R';
            fputc(file[i], File);
        }


        if (file[i] == 'u')
        {
            file[i] = 'C';
            fputc(file[i], File);
        }


        if (file[i] == 'v')
        {
            file[i] = 'Q';
            fputc(file[i], File);
        }


        if (file[i] == 'w')
        {
            file[i] = 'T';
            fputc(file[i], File);
        }


        if (file[i] == 'x')
        {
            file[i] = 'D';
            fputc(file[i], File);
        }


        if (file[i] == 'y')
        {
            file[i] = 'S';
            fputc(file[i], File);
        }


        if (file[i] == 'z')
        {
            file[i] = 'H';
            fputc(file[i], File);
        }
    }

    printf("Check the file for encrypted message!\n\n");

    fclose(File);
    return;
}

int main()
{
    int i = 0;
    char file[MAXSIZE];
    FILE *File = 0;

    Encrypt(File, file, i);   

    system("pause");
    return 0;
}

任何解决方案?

3 个答案:

答案 0 :(得分:18)

使用sudo docker login

或@Serey提到将您的用户添加到docker group

usermod -aG docker $USER

并从您的会话中断开连接!

答案 1 :(得分:1)

一旦我尝试过该解决方案。最初它没有用,但是在整个系统重新启动后才起作用。

答案 2 :(得分:0)

您必须将用户添加到docker组中,如其他帖子所建议的

usermod -aG docker $USER

但是,此更改不会影响您当前的终端会话。如果您不想登录/注销,可以使用

newgrp - docker

该更改将影响您当前的终端会话。