Не удается подключиться к Docker с помощью Windows Ubuntu App - PullRequest
1 голос
/ 18 марта 2020

Я придерживаюсь этого урока: https://www.geeksforgeeks.org/dockerize-your-flask-app/

Все работает хорошо, пока я не перехожу к этому шагу: "Создайте изображение Docker Убедитесь, что вы находитесь в каталоге root проекта и выполните следующую команду. "

Чтобы попасть в каталог root, я ввожу sudo su, затем запускаю следующую команду, как показано в руководстве:

sudo docker build --tag flask-docker-demo-app .

Когда я Запустив выше, я получаю этот ответ:

ERRO[0000] failed to dial gRPC: cannot connect to the Docker daemon. Is docker daemon' running on this host?: dial unix /var/run/docker.sock: connect: no such file or directory. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Для выполнения этих команд я использую приложение Ubuntu 18.04 LTS для windows. У меня также загружен Docker рабочий стол.

Кроме того, я не думаю, что это окажет какое-либо влияние, но у меня есть другой файл demo.py, чем учебник. Вот мой demo.py:

from flask import Flask 
server = Flask(__name__) 
@server.route('/') 
# ‘/’ URL is bound with hello_world() function. 
def hello_world(): 
    return 'Hello World'

import sys
print(sys.version)

import dash
import dash_core_components as dcc
import dash_html_components as html

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, server = server, routes_pathname_prefix = '/dash/', external_stylesheets=external_stylesheets)

app.layout = html.Div(children=[
    html.H1(children='Hello Dash'),

    html.Div(children='''
        Dash: A web application framework for Python.
    '''),

    dcc.Graph(
        id='example-graph',
        figure={
            'data': [
                {'x': [1, 2, 3], 'y': [4, 1, 22], 'type': 'bar', 'name': 'SF'},
                {'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
            ],
            'layout': {
                'title': 'Dash Data Visualization'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)```

Ответы [ 2 ]

2 голосов
/ 18 марта 2020

Запуск sudo su перед запуском вашей другой команды устарел, поскольку она запускается как суперпользователь, добавляя префикс sudo.

"root directory" означает не ваш каталог root -user, а каталог root вашего проекта, где хранится ваш Dockerfile. Вы должны перейти в этот каталог перед запуском команды docker build.

0 голосов
/ 18 марта 2020

Вы должны поместить своего пользователя в группу docker, чтобы вам не приходилось выдавать sudo для использования Docker. (На самом деле, конечно, вы не должны никогда делать это!)

А потом ... "Ну, работает Docker демон?" Похоже, вам может понадобиться (пере) установить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...