Docker trên Windows 10 Trình điều khiển Windows không thể lập trình kết nối bên ngoài trên endpoint


134

Tôi đang cố gắng sử dụng $ docker-compose up -dcho một dự án và nhận được thông báo lỗi này:

LRI: cho api Không thể khởi động dịch vụ Gặp phải lỗi trong khi đưa lên dự án.

Tôi tự hỏi nếu nó có thể là cổng? Tôi đã thử cổng 8080 trước đây. Dự án ban đầu được thiết lập trên máy mac và tôi đã nhân bản kho lưu trữ từ gitHub.


Vui lòng thêm một liên kết đến vé github để tất cả chúng ta có thể đi qua đó và nâng cấp nó.
PussInBoots

Câu trả lời:


270

Tôi đã nhận được thông báo lỗi tương tự trên Windows 10 Pro / Docker v17.06.1-ce-win24 / Docker-Compose v1.14.0 bằng Windows Powershell x86 ở chế độ quản trị viên.

Giải pháp đơn giản là khởi động lại Docker.


Tôi sử dụng docker Phiên bản 18.03.0-ce-win59 (16762) trên Windows 10 Professional. Hình ảnh Docker là jenkins / jenkins: 2.107.2. Sau khi kéo, tôi sử dụng lệnh này để cài đặt docker run -p 8080:8080 --name myJenkins -p 50000:50000 jenkins/jenkins:2.107.2. Sau khi cài đặt xong jenkins, tôi sử dụng docker stop myJenkinstrong cửa sổ lệnh khác và tắt máy chủ Windows 10. Khi tôi khởi động windows 10 tự động khởi động docker, tôi sử dụng lệnh docker start myJenkinsvà nhận được thông báo quen thuộc. Tuy nhiên, khởi động lại docker giải quyết vấn đề :)
Charles Wu

1
Có ai biết tại sao điều này xảy ra? Khởi động lại docker có vẻ hacky, có cách nào để giải quyết điều này đúng không?
Bão Muller

Bản sửa lỗi tương tự đã hoạt động với tôi vào tháng 3 năm 2019. Sử dụng Docker Desktop Phiên bản 2.0.0.3 (31259) Kênh: ổn định Build: 8858db3 Máy khách: Docker Engine - Phiên bản cộng đồng: 18.09.2 Phiên bản API: 1.39 Phiên bản đi: go1.10.8 Git commit: 6247962 Được xây dựng: Chủ nhật ngày 10 tháng 2 04:12:31 2019 HĐH / Arch: windows / amd64 Thử nghiệm: false Win 10 Phiên bản 10.0.18346.1 (phiên bản nhanh của bản phát hành trước)
JohnC

cũng gặp vấn đề tương tự trên máy Mac và khởi động lại docker cũng đã sửa nó ... jesus Tôi nên kiểm tra câu trả lời của bạn trước khi cài đặt lại toàn bộ môi trường
docker

67

Nếu xảy ra một lần, khởi động lại Docker sẽ thực hiện công việc. Trong trường hợp của tôi, nó đã xảy ra mỗi khi tôi khởi động lại máy tính của mình.

Trong trường hợp này, hãy tắt Khởi động nhanh hoặc có thể bạn sẽ khởi động lại Docker mỗi khi máy tính của bạn khởi động. Giải pháp này được lấy từ đây


6
Điều này nên được chấp nhận như một câu trả lời. Khởi động lại hoạt động nhưng khi bạn cần làm điều đó mỗi khi nó trở nên khó chịu
Vitalii

Tôi đã gặp lỗi này khi chuyển đổi người dùng trên Windows 10
Vasko

58

Đơn giản chỉ cần khôi phục Docker đã không khắc phục sự cố cho tôi trên Windows 10.

Trong trường hợp của tôi, tôi đã giải quyết vấn đề bằng các bước chính xác dưới đây:

1) Đóng "Docker Desktop"

2) Chạy các lệnh dưới đây:

net stop com.docker.service
net start com.docker.service

3) Khởi chạy lại "Docker Desktop"

Hy vọng điều này sẽ giúp người khác.


3
Điều này làm việc cho tôi sau khi thử chỉ là một docker khởi động lại! Ngoài ra, đừng quên chạy cặp đôi này với đặc quyền quản trị viên
Gad Wissberg

Nó hoạt động, nhưng tôi không có đặc quyền quản trị viên mọi lúc :(
Hassan Tareq

3
Làm việc cho tôi khi khởi động lại dịch vụ docker, thường chỉ cần khởi động lại máy tính để bàn docker là đủ nhưng không phải lúc này ... docker trên windows 10 thực sự rất đau đớn (độ trễ, lỗi, doc, ...)
FAjir

Điều này đã làm việc! Nên là câu trả lời thực sự được chấp nhận. Cảm ơn
Dominik K

Làm việc cho tôi, thnx!
G.Mast

9

Tôi cũng gặp lỗi đó, nếu bạn muốn biết lý do chính tại sao xảy ra lỗi, vì docker đã chạy một container tương tự, để giải quyết vấn đề (tránh khởi động lại Docker), bạn phải:

docker container ls

Bạn có một cái gì đó tương tự như:

CONTAINER ID        IMAGE               COMMAND             CREATED
1fa4ab2cf395        friendlyhello       "python app.py"     28 seconds ago

Đây là danh sách các container đang chạy, hãy lấy ID CONTAINER (bản sao Ctrl+ C)

Bây giờ bạn phải kết thúc quá trình (và để chạy một hình ảnh khác) chạy lệnh này.

docker container stop <CONTAINER_ID>

Và đó là tất cả! Bây giờ bạn có thể tạo container.

Để biết thêm thông tin, hãy truy cập https://docs.docker.com/get-started/part2/


7

Tôi biết rằng đã có rất nhiều câu trả lời, nhưng không ai trong số họ giải quyết vấn đề cho tôi.
Thay vào đó, tôi đã loại bỏ thông báo lỗi này bằng cách đặt lại docker về mặc định của nhà máy :

nhập mô tả hình ảnh ở đây


Bạn đã có bất kỳ báo cáo lỗi nào từ Docker trước khi làm điều đó chưa, bởi vì trong trường hợp của tôi, tôi có một cái gì đó giống như một lỗi xuất hiện với đề xuất đặt lại về mặc định của nhà sản xuất.
Theodosios Asvestopoulos

Không, @TheodosiosAsvestopoulos, tôi đã không bật lên.
jasie

Lạ là hôm nay tôi lại gặp vấn đề tương tự, khởi động lại docker không giúp được gì. Tôi không muốn thiết lập lại mặc định của nhà máy một lần nữa, vì chúng tôi đã kéo các hình ảnh thực sự lớn, vì vậy tôi chỉ cần thoát Docker Desktop và mở lại và nó hoạt động (dường như là một hành động khác so với chỉ để khởi động lại nó).
Theodosios Asvestopoulos

6

Thông thường lỗi này xảy ra khi bạn đang thử khởi động một container nhưng các cổng mà container cần chiếm, thường là bởi cùng một Docker giống như kết quả của một quá trình xấu mới nhất phải dừng lại.

Đối với tôi giải pháp là:

  1. Mở các cửa sổ CMD như quản trị viên, gõ netstat -oanđể tìm quy trình (Docker là quy trình đó) đang chiếm lĩnh cổng của bạn:

Trong trường hợp của tôi, các cổng docker của tôi là 3306 6001 8000 9001.

  1. Bây giờ chúng tôi cần các cổng đó miễn phí, vì vậy chúng tôi sẽ loại bỏ quá trình này bằng cách sử dụng PID (colum PID), gõ

    TASKKILL /PID 9816 /F
    
  2. Khởi động lại docker.

  3. Hãy hạnh phúc.

Trân trọng.


2

Trong trường hợp của tôi, vấn đề là container docker (Nginx) sử dụng cổng 80 và IIS sử dụng tương tự. Thiết lập một cổng khác trong IIS giải quyết vấn đề


1

Trong hầu hết các trường hợp, trường hợp đầu tiên bạn nên nghĩ đến là có một dịch vụ cũ đang chạy và sử dụng cổng đó. Trong trường hợp của tôi, vì tôi thay đổi tên hình ảnh, nên khi sử dụng docker-compose để dừng (sau đó lên), nó sẽ không dừng container cũ (dịch vụ), dẫn đến container mới không thể khởi động.


0

Một chút câu trả lời muộn nhưng tôi sẽ để nó ở đây, nó có thể giúp đỡ người khác Trên máy mojave sau rất nhiều lần khởi động lại cả mac và docker mà tôi đã phải sudo apachectl stop.


0
  • Cách đơn giản nhất để giải quyết điều này là Khởi động lại docker. Nhưng trong một số trường hợp, nó có thể không hoạt động ngay cả khi bạn không có bất kỳ container nào đang chạy trong cổng. Bạn có thể kiểm tra các container đang chạy bằng docker pslệnh và có thể thấy tất cả các container không bị xóa nhưng đã thoát trước khi sử dụng docker ps -alệnh.

Hãy tưởng tượng có một container có id container 8e35276e845e. Bạn có thể sử dụng lệnh docker rm 8e35276e845ehoặc docker rm 8e3để kết thúc container. Lưu ý rằng 3 chuỗi đầu tiên là id của id container docker cụ thể đó. Do đó theo kịch bản trên 8e3 là id của 8e35276e845e .

  • Nếu khởi động lại không hoạt động, bạn có thể thử thay đổi cổng của dịch vụ trong tệp docker-compose.yml và theo cổng apache, bạn phải thay đổi cổng của máy chủ v (nếu có). Điều này sẽ giải quyết vấn đề.

Ví dụ:

    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8082:80
    depends_on:
      - mysql_db

nên được đổi thành

apache_server:
    build:
      context: ./apache
      dockerfile: Dockerfile
    working_dir: /var/www/
    volumes:
      - .:/var/www
    networks:
      - app-network
    ports:
      - 8083:80
    depends_on:
      - mysql_db

và máy chủ v cụ thể cũng phải được thay đổi,

Ví dụ (theo kịch bản trên):

<VirtualHost *:80> 
    ProxyPreserveHost On
    ServerAlias phpadocker.lk
    ProxyPass / http://localhost:8083/
    ProxyPassReverse / http://localhost:8083/
</VirtualHost>

Điều này sẽ giúp bạn giải quyết vấn đề trên.


0

Đối với nhiều người dùng windows ngoài đó có cùng một vấn đề, tôi cũng đề nghị khởi động lại máy tính, bởi vì hầu hết các lần (ít nhất là đối với tôi) khởi động lại chỉ Docker không hoạt động. Vì vậy, tôi sẽ đề nghị bạn làm theo các bước sau:

  1. Khởi động lại máy tính của bạn.
  2. Sau đó, khởi động PowerShell của bạn với tư cách quản trị viên và chạy này:

    Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

  3. Sau đó khởi động lại Docker của bạn.

Sau khi hoàn thành các bước này, bạn sẽ có thể chạy mà không gặp vấn đề gì. Tôi hy vọng điều đó sẽ giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.