Windows 용 Docker가 작동하지 않음
이제 Docker 도구 상자를 설치했는데 모든 오류가 발생합니다.
Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectExtcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
docker version
산출:
Client:
Version: 1.8.1
API version: 1.20
Go version: go1.4.2
Git commit: d12ea79
Built: Thu Aug 13 02:49:29 UTC 2015
OS/Arch: windows/amd64
Get http://127.0.0.1:2375/v1.20/version: dial tcp 127.0.0.1:2375: ConnectEx tcp: No connection could be made because the target machine actively refused it..
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?
그러나 VM은 VirtualBox에서 실행 중입니다. 나는 모든 곳을 검색했지만 해결책을 찾을 수 없습니다.
UPDATE1 : Windows 8.1을 사용하고 있으며 Kinematic도 시작하려고했습니다.
UPDATE2 : Virtualbox Test Build 5.0.3 이상을 시도했을 때 모든 것이 매력처럼 작동했습니다. 여기에서 다운로드 할 수 있습니다 : https://www.virtualbox.org/wiki/Testbuilds
그냥 실행 :
"C:\Program Files\Docker Toolbox\docker-machine" ls
컴퓨터 이름을 얻은 다음 다음을 실행하십시오.
"C:\Program Files\Docker Toolbox\docker-machine" env <MACHINE_NAME_HERE> --shell=[cmd|powershell]
다음과 같은 결과를 얻을 수 있습니다.
"C:\Program Files\Docker Toolbox\docker-machine" env default --shell=cmd
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.X.X.X:2376
set DOCKER_CERT_PATH=C:\Users\X\.docker\machine\machines\default
set DOCKER_MACHINE_NAME=default
# Run this command to configure your shell:
# copy and paste the above values into your command prompt
또한 open C:\Users\X\.docker\machine\machines\default\server.pem: The system cannot find the file specified.
VirtualBox를 버전 5.0.3으로 업그레이드 하여 오류가 발생 하고이를 해결했습니다 ( 야간 빌드에서 ).
긴 버전 :
같은 문제가 발생했고 설치 매뉴얼의 "Windows 명령 줄 프롬프트 (cmd.exe)에서 Docker 사용"섹션을 통해 올바른 방향으로 안내했습니다.
기본적으로 docker가 작동하는 방식은 "docker"명령이 docker 서비스 (포트 2375에서 실행 됨)로 전달되는 것입니다. Windows 호스트에서 도커를 실행할 때 서비스는 실제로도 커가 만든 Linux 호스트에서 실행됩니다 (virtualbox UI를 열어 볼 수 있음).
일반적인 흐름은 다음과 같습니다.
- 기본 머신이 생성됩니다.
- 머신의 스타터 (kinamatic / "Docker Quickstart Terminal"/ cmd)는 머신이 부팅 될 때까지 기다렸다가 IP 주소를 가져오고 몇 가지 환경에서 linux ip : port를 서비스 주소로 설정합니다 (127.0.0.1:2375 대신). / powershell 변수
- 이 시점부터 모든
docker ...
명령이 Linux 호스트로 전송되고 모든 것이 거의 기본 Linux처럼 작동합니다.
문제는 컴퓨터 설정에 문제가 있다는 것입니다 (새로운 가상 상자를 추측하지만 확실하지 않으며 파헤칠 시간이 있습니다). 당신은 runnung하여 해당 볼 수 있습니다 ls
기계의 상태가 "타임 아웃"이고 어떤 URL이 설명서에 표시된 출력과는 달리,이 없다 (내 경우에는 적어도) 해당 명령 통지합니다.
이로 인해 환경 값이 설정되지 않고 docker ...
명령이 실패합니다.
명령을 실행하는 것 외에도 Docker Quickstart Terminal
동일한 작업을 수행하지만 sh 셸을 사용하여 시작할 수도 있습니다.
인증서 오류와 관련하여 다음을 사용하여 가상 머신 내에서 인증서를 다시 생성하려고했습니다.
/usr/local/bin/generate_cert --overwrite --host=default,127.0.0.1,10.0.2.15,192.168.99.100 --ca=/var/lib/boot2docker/tls/ca.pem --ca-key=/var/lib/boot2docker/tls/cakey.pem --cert=/var/lib/boot2docker/tls/server.pem --key=/var/lib/boot2docker/tls/serverkey.pem
호스트 컴퓨터에 인증서를 복사하려고 할 때 "프로토콜 오류"가 발생하여 오래된 가상 상자 공유 폴더 버그를 상기 시켰습니다. 따라서 Docker에서는 문제가되지 않지만 가상 상자에서는 문제가되지 않을 수 있습니다. 최신 야간 버전 (5.0)으로 업그레이드했습니다. .3-102224), 기본 이미지를 다시 생성했으며 해결하는 것 같습니다. Windows 10은 공식적으로 지원되지 않지만 docker 또는 virtualbox 모두에서 지원하지 않기 때문에 이것이 인증서 오류를 발생시키는 것과 동일한 것인지 확실하지 않습니다. 어쨌든 가상 머신에서 인증서를 복사하려고 할 수 있습니다 (당신은 코드 블록의 경로) 로컬 사용자 디렉터리 (가상 머신의 / c / Users / X /에 매핑 됨)
다음은 나를 위해 일했습니다 (Docker Toolbox 1.8.1b 및 Windows 7). @ baptiste-gaillard가 위의 주석에서 설명한 내용의 단순화 된 버전입니다. 간단한 대답 : 처음부터 VirtualBox 5.03 이상을 사용하십시오.
- VirtualBox 5.03 (이 게시물 당시 야간 빌드) 및 확장 팩을 다운로드하십시오.
- 노트북을 재부팅하십시오. (실행중인 VirtualBox 항목을 지 웁니다.)
- VirtualBox 5.03 및 확장 팩 5.03을 설치합니다.
- 기본 VM을 완전히 삭제합니다 (파일 제거).
- Docker 빠른 시작 터미널 바로 가기를 다시 실행하여 기본 VM을 생성합니다.
Quickstart 스크립트는 필수 TLS 키 생성과 관련하여 VirtualBox 5.03과 더 잘 어울리는 것 같습니다.
당신이 보여준 것과 같은 문제가 있었고 몇 시간 전에 그것을 고쳤습니다.
Hyper-V를 비활성화하기 만하면됩니다. 관리자 권한 으로 명령 프롬프트를 실행하고 다음 명령을 실행합니다.
bcdedit /set hypervisorlaunchtype off
PC를 다시 시작하고 virtualbox를 열고 다시 시작한 후 기본 vm을 삭제하고 docker 빠른 시작 터미널로 돌아가서 다음 명령을 입력하십시오.
docker run hello-world
그리고 당신은 끝났습니다! 문제가 해결되기를 바랍니다.
이것은 나를 위해 작동합니다
1) 먼저 명령 줄 도구를 시작하고 다음을 실행하여 컴퓨터 IP 주소를 가져옵니다.
docker-machine ls 명령
2) 인증서 다시 생성 docker-machine regenerate-certs
3) 내 경우에는 인증서의 위치가 다른 evn 변수를 수동으로 설정하십시오.
DOCKER_TLS_VERIFY = 1로 설정
DOCKER_HOST = tcp : // machine_IP : 2376 설정
DOCKER_CERT_PATH = C : \ Users \ X.docker \ machine \ certs 설정
DOCKER_MACHINE_NAME = default 설정
이제 도커 버전 실행
내 경우의 출력은 다음과 같습니다.
클라이언트 : 버전 : 1.8.1 API 버전 : 1.20 Go 버전 : go1.4.2 Git 커밋 : d12ea79 빌드 : Thu Aug 13 02:49:29 UTC 2015 OS / Arch : windows / amd64
서버 : 버전 : 1.8.1 API 버전 : 1.20 Go 버전 : go1.4.2 Git 커밋 : d12ea79 빌드 : Thu Aug 13 02:49:29 UTC 2015 OS / Arch : linux / amd64
Docker Toolbox (1.8.x) 설치는 기본적으로 TLS 프로토콜 (버전 1.8)을 통한 보안 연결을 사용하도록 Docker Daemon을 구성합니다.
보안되지 않은 이전 버전의 데몬을 사용하는 경우 적어도 두 가지를 의미합니다.-포트 번호가 2375에서 2376으로 변경됨-데몬 클라이언트는 도커 엔진 / 서버와 통신하기 위해 인증서를 제시해야합니다.
따라서 sandiindia의 응답은 도커 클라이언트에 정확한 환경 변수를 표시하여 도커 서버 / 엔진에 연결하기에 좋은 구성을 나타냅니다.
#You're using a TLS secured daemon :
set DOCKER_TLS_VERIFY=1
# Precise the Docker Host IP and port, the TLS default is 2376
set DOCKER_HOST=tcp://*<docker_host_IP>*:2376
# The paths to the certificate and client key needed to authenticate to the daemon
# You should have 3 files in this directory : ca.pem, cert.pem and key.pem
# In my case the default path looks like :
set DOCKER_CERT_PATH=C:\Users\*<username>*\.docker\machine\machines\default
#the name of your Docker Host VM :
set DOCKER_MACHINE_NAME=default
TLS 구성에 대한 Docker 문서 : https://docs.docker.com/articles/https/
나는 그것이 도움이되기를 바랍니다;)
Close the virtual machine from Virtual Box (you don't have to delete it)
Close Kitematic
Close Docker Quickstart Terminal
이제 순서대로 수행하십시오.
Open Kitematic
Open Docker Quickstart Terminal
Its important not to open Docker Quickstart Terminal before Kitematic, as Kitematic will initialize things for Docker Quickstart Terminal
I didn't need to execute any command line..
I hope this will help some body..
I too had the same problem, but I was able to solve it without having to type anything on the command line, it just worked out of the box.
It turns out a few initialization steps were missing, as pointed out in the accepted answer above. Why wasn't the default Docker installation already doing this? I also had missing certs. So, I uninstalled everything and restarted from scratch. However, after the installation completed, this time around do not open the Docker Quick Start terminal first, open Kitematic instead to do the first initialization for you.
Kitematic created the certs for me, set the missing env variables and then I opened the Docker Quick Start terminal. I typed docker run hello-world
, then docker version
and this time it worked as expected, no error messages.
Note that this didn't work when I opened the Quick Start terminal first.
I'm testing Docker inside VMWare 10 instances and I was able to duplicate this problem and its solution (workaround) in every case.
I hope this helps.
I fixed my issue by simply Removing the default VM in the VirtualBox manager, rebooting PC (just in case), and then re-running Docker Quickstart Terminal. That's it.
Docker 1.8.2 and Virtual Box 5.0.4
- Update to the latest virtual box above 5.0.3
- Restart the system
- open virtual box and remove the default virtual machine
- open the docker quick start terminal
- run
docker run hello-world
And you are done.
Delete and remove all old v.machines on your laptop: 1. Open VirtualBox, right click on 'default', Remove, 'Delete All files'. 2. Command Prompt (Run as Admin)> docker-machine rm default
Uninstall Virtualbox, Docker toolbox and Git. Navigate to c:\Users\Vinita, and delete dirs. .docker and .Virtualbox CClean files and registry. Reboot.
Cleaning is done.
I. Download latest version of Docker tools for windows (1.10.2) from Docker Toolbox Right click on the downloaded file and 'Run as administrator' This will install - Docker Quickstart, Kitematic and Virtualbox.
II. Download latest test build of VirtualBox (5.01.15-105696-win.exe) from Testbuilds – Oracle VM VirtualBox . Run as Administrator again.
(You can ignore any warnings and overwrite on the already Docker-installed VirtualBox).
So far, Nothing out of the ordinary. We just installed the software with Admin rights. Now, Control Panel>Network and Sharing Center>Change adapter settings: Right click VirtualBox Host-Only Network #2 for Properties. Check> VirtualBox NDIS6 Bridged Networking Driver. (If it is already checked, uncheck and check again.)
You are done. This is the only fix that we have employed!
Both Kitematic and Docker Quickstart should work now.
Right click on Kitematic and Run as admin the first time. Tested on Windows 10.
With Docker 1.8.1d had the same problem, having uninstalled 1.8.1c. Eventually fixed problem by installing latest Virtual Box (5.0.18), rebooting when prompted and starting Kitematic. Kitematic fails at first and offers option to remove and re-install the VM which I did. After that my QuickStart Terminal was OK.
It sounds like the problem with virtual box, In my case, I have performed below steps to resolve the issue
- Stop Docker machine by 'docker-machine stop'
- Open Network and sharing Center in Windows OS
- Click on Change Adapter settings
- Disable the VirtualBox-Host Only Network
- Start Docker machine by 'docker-machine start'
This has happened a few times for me on Windows 10 with VirtualBox 5.0.14.
It seems to be related with not shutting down VirtualBox correctly (I believe) - for example, a power cut!
Shutdown the Docker VM
Close Kitematic
Start the Docker Quickstart Terminal
Type in the terminal:
docker-machine.exe -D ls
- Start Kitematic. VM's show up now.
If that does not work, try 1-3 again and this time try to regenerate certs. Then do step 4.
One thing that is odd, is that in the terminal docker images
does not list them but says it cannot connect to 127.0.0.1:2375 (but docker-machine ls
shows the default machine running on 192.168.99.100:2376).
I encountered exactly the same error when I run docker images after a system reboot. I used docker version 1.10 on Windows 7 64 bits with virtualbox 5.0.10 and mintty(the terminal come with Git for Windows)
Executing docker-machine ls showed me the virtual machine is in Timeout state. $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default virtualbox Timeout
So I restarted the virtual machine $ docker-machine restart default
Then list the status again told me the cert is bound to an incorrect address: $ docker-machine ls Unable to query docker version: Get https://192.168.56.101:2376/v1.15/version: x509: certificate is valid for 192.168.99.101, not 192.168.56.101
Then I regenerate the cert $ docker-machine regenerate-certs default
and finally $ eval $(docker-machine env default --shell=bash)
Then docker is working again!
Just recreate the default machine, and then run
docker-machine env default
It works for me.
if you are using docker for windows(beta) follow this steps:
- Disable the "DockerNAT" network adapter
- Run the "Reset to factory defaults" via the taskbar / docker / settings / Reset to factory defaults"
On my non-virtual machine, I got same error. Below steps worked for me
Right click docker->Under Settings->General do you have Expose daemon on tcp://localhost:2375 without TLS enabled? You need to if you want to access the daemon as described. But please do keep in mind that this setting is insecure as explained in the warning.
My issue was "...error getting IP address" Thanks to all the people here who have contributed their solutions which I read through and performed these steps:
Close Docker
Open VirtualBox Manager
Delete default VM
Start Kitematic first (I think this is important)
Start Docker
참고URL : https://stackoverflow.com/questions/32047660/docker-for-windows-not-working
'developer tip' 카테고리의 다른 글
Java에서 컬렉션이 비어 있는지 확인 : 가장 좋은 방법은 무엇입니까? (0) | 2020.11.06 |
---|---|
gcc / g ++ :“해당 파일 또는 디렉토리 없음” (0) | 2020.11.05 |
Angular 2 : 부모 구성 요소에서 RouteParams 가져 오기 (0) | 2020.11.05 |
마지막 호출이 조건부 일 때 C # 컴파일러가 메서드 호출 체인을 제거하는 이유는 무엇입니까? (0) | 2020.11.05 |
C ++에서 동적 디스패치와 후기 바인딩의 차이점은 무엇입니까? (0) | 2020.11.05 |