TLS가 없는 TLS 지원 데몬에 연결하려고 합니까?
도커에 대해 배우려고 하는데 자꾸 오류 메시지가 뜨네요.
가장 간단한 예는 설치된 도커 버전을 인쇄하는 것일 수 있습니다.
$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
방금 사용자 안내서를 보고 모든 단계를 정확히 따라갔기 때문에 이런 메시지가 나와서 깜짝 놀랐어요...저는 이제 어떡하죠?
내가 사용하지 않는다면.sudo
오류를 이해할 수 없습니다.
$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8
물론 이것은 제가 사용해야 할 수도 있기 때문에 해결책이 아닙니다.sudo
길 아래 어딘가에...
"OS X를 사용하는 경우에는 사용하지 말아야 합니다."라는 다른 페이지를 찾았습니다.sudo
인지, 일반적으로" 그것들이 단지 그 예만을 의미하는 것인지 아니면 일반적으로 의미하는 것인지 모르겠습니다.
저는 달리기가$(boot2docker shellinit 2> /dev/null)
문제를 고쳤습니다.
이것은 의 출력을 실행합니다.boot2docker shellinit
삼휘))set -x ...
line) 현재 터미널 세션에서 다음과 같은 작업을 수행할 수 있습니다.docker
명령은 boot2 docker 가상 시스템을 찾을 위치를 알고 있습니다.
추가하기$(boot2docker shellinit 2> /dev/null)
당신의 진심으로~/.bash_profile
파일을 통해 확인할 수 있습니다.docker
명령은 단말기를 열 때마다 구성됩니다.
피시쉘을 사용하는 사람의 경우:boot2docker shellinit ^ /dev/null | source
.
:2> /dev/null
(및 물고기 등가물)^ /dev/null
사항입니다는 선택 사항입니다.@pablo-fernandez 가 제안한 것처럼, 이것은 그것을 숨깁니다.Writing ..
들.
저는 sudo가 있는 MacOS와 없는 MacOS에서 동일한 오류가 발생했습니다.
다음을 통해 해결했습니다.
boot2docker start
$(boot2docker shellinit)
추신: Alan 덕분입니다.저는 이 방법이 그들의 공식 문서에서 권장된다는 것을 알게 되었습니다.
추신: 가끔은boot2docker init
두 개의 명령을 실행하기 전에 필요할 수 있습니다(감사합니다 Aaron).
저의 경우(리눅스 민트 17) 다양한 일을 했는데, 어떤 것이 꼭 필요한지 잘 모르겠습니다.
누락된 Ubuntu 패키지 포함:
$ sudo apt-get install apparmor lxc cgroup-lite
사용자가 그룹에 추가되었습니다.docker
:
$ sudo usermod -aG docker ${USER}
시작된 데몬(openSUSE는 이것만 있으면 됨)
$ sudo docker -d
감사합니다\귀인
우스만 이스마일 고마워요 아마 마지막 일이었을지도...
바보같은 질문이지만 도커 데몬을 시작했나요?– 우스만 이스마일 12월 17일 '14일 15:04
github@Michael에게도 감사드립니다.Usman님의 댓글을 읽었을 때 데몬을 확인하지 않았기 때문에, 저에게 효과가 있었던 솔루션에 대해 Jcole.
sudo apt-get install apparmor lxc cgroup-lite
sudo apt-get install docker.io
# If you installed docker.io first, you'll have to start it manually
sudo docker -d
sudo docker run -i -t ubuntu /bin/bash
누락된 패키지를 알아채고 기본 Ubuntu 설치 지침을 잊어버리고 다른 방법을 검색해 준 fredjean.net 게시물에 감사드립니다.
리눅스 민트에는 cgroup-lite와 lxc 패키지가 기본적으로 설치되어 있지 않은 것으로 나타났습니다.둘 다 설치하면 기본 이미지에서 bash를 실행한 다음 이미지를 빌드하고 실행할 수 있습니다.
open SUSE에 대한 86의 의견에 감사드립니다.
밑줄 친 문제는 간단합니다. 권한이 없기 때문입니다./var/run/docker.sock
유닉스 도메인 소켓.
도커 1.6.0에 대한 도커 명령줄 참조의 데몬 소켓 옵션 장에서:
기본적으로 유닉스 도메인 소켓(또는 IPC 소켓)은 다음 위치에서 생성됩니다.
/var/run/docker.sock
, 루트 허가 또는 도커 그룹 멤버 자격이 필요합니다.
사용자에게 권한을 부여하는 데 필요한 단계는 Fedora의 Docker 설치 지침에 자세히 설명되어 있습니다.
사용자에게 도커를 사용할 수 있는 권한 부여
도커 명령줄 도구는 소켓 파일을 통해 도커 데몬 프로세스에 연결합니다.
/var/run/docker.sock
소유의root:root
. 도커 명령에는 sudo를 사용하는 것이 좋으나, 사용자가 이를 피하고 싶다면 관리자가 도커 그룹을 생성하여 자신의 것을 가질 수 있습니다./var/run/docker.sock
, 사용자를 이 그룹에 추가합니다.
$ sudo groupadd docker
$ sudo chown root:docker /var/run/docker.sock
$ sudo usermod -a -G docker $USERNAME
위의 변경사항을 적용하려면 로그아웃 후 다시 로그인합니다.일부 리눅스 배포판(Ubuntu)의 도커 패키지가 이미 설치되어 있습니다./var/run/docker.sock
docker
위의 단계들 중 처음 두 단계를 불필요하게 만드는 그룹.
X 의 boot2docker
. 도커 데몬은 VM 내부에서 실행되므로DOCKER_HOST
환경 변수를 이 VM에 설정해야 도커 클라이언트가 도커 데몬을 찾을 수 있습니다.이 작업은 실행으로 이루어집니다.$(boot2docker shellinit)
포탄 속에
도커 데몬이 실행 중인지 확인합니다.
service docker start
그거로 고쳐줬어요!
- 도커는 스스로를 리눅스 컨테이너를 위한 자급자족 런타임이라고 부릅니다.간단히 말하면 서버와 클라이언트의 역할을 모두 수행합니다.
-
$ docker version
명령 쿼리는 실행 중인 데몬/서비스가 아닌 도커 실행 파일 내부에 있습니다. $ docker images or $ docker ps or $ docker pull centos
실행 중인 도커 데몬/서비스에 쿼리를 전송하는 명령입니다.- 도커는 기본적으로 데몬/서비스에 대한 TLS 연결을 지원합니다.
- 로그인한 사용자가 사용자 그룹의 일부인 경우에만 해당됩니다.
docker
사용한 적이 있거나sudo
예를 들어 명령 앞에$ sudo docker images
, TLS 연결이 필요하지 않습니다.
맨 위로 조금 스크롤하여 찾기warning section
명료하게 하기 위해서
다음 작업을 수행해야 합니다.
$boot2docker init
$boot2docker start
다음 설정으로 문제가 해결되었습니다.
$export DOCKER_HOST=tcp://192.168.59.103:2376
$export DOCKER_CERT_PATH=/Users/{profileName}/.boot2docker/certs/boot2docker-vm
$export DOCKER_TLS_VERIFY=1
파일에 대한 권한이 아직 없을 수도 있습니다.내가 여기에 몸을 바친 후에 일어난 일입니다.docker
그룹사용
sudo gpasswd -a user docker
아직 로그아웃하지 않았습니다.
이 문제를 해결하려면 다시 로그인하거나sg docker "docker <subcommand> ..."
당신이 로그아웃하기 전에.
그룹일 경우docker
인에/etc/group
, 비밀번호를 입력하지 않고 실행할 수 있어야 합니다.
Ubuntu에서 lxc-docker를 설치한 후 사용자를 도커 사용자 그룹에 추가해야 합니다.
sudo usermod -a -G docker myusername
이는 소켓 파일 권한 때문입니다.
srw-rw---- 1 root docker 0 Mar 20 07:43 /var/run/docker.sock
다른 의견 중 하나에 제시된 "-a"가 없는 사용자 모드를 실행하지 마십시오. 그렇지 않으면 추가 그룹 설정이 삭제되고 "도커" 그룹만 떠납니다.
이렇게 될 것입니다.
➜ ~ id pawel
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),998(docker)
➜ ~ usermod -G docker pawel
➜ ~ id pawel
uid=1000(pawel) gid=1000(pawel) groups=1000(pawel),998(docker)
TLDR: 도커 설치에 대한 클리닉을 실행할 때 대부분의 사용자가 OS X에 있을 때 이 문제를 해결하기 위해 Python Meetup 그룹을 구성했습니다.
boot2docker init
boot2docker up
운영을 맡다export
출력이 제공하는 명령을 입력합니다.
docker info
효과가 있다는 걸 말해줘야 합니다
상황(우리를 문제에 이르게 한 것)
저는 도커 설치에 대한 클리닉을 이끌었고 대부분의 참석자들은 OS X를 가지고 있었고, 우리는 이 문제에 부딪혔고 저는 여러 기계에서 이 문제를 극복했습니다.우리가 수행한 단계는 다음과 같습니다.
먼저 홈브루를 설치했습니다(예, 일부 참석자는 홈브루를 사용하지 않았습니다).
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
그 다음에는 가상 박스를 설치할 때 사용했던 캐스크(cask)를 사용한 다음 브루를 사용하여 도커(docker)와 부트2도커(boot2docker)를 설치했습니다(OS X에 모두 필요). 브루에는 sudo를 사용하지 마십시오.
brew install caskroom/cask/brew-cask
brew cask install virtualbox
brew install docker
brew install boot2docker
더 솔루션
그때 우리는 여기 질문자가 받은 문제에 부딪쳤습니다.다음이 고쳤습니다.알겠습니다.init
한 번뿐인 거래였지만, 당신은 아마도 도망쳐야 할 것입니다.up
도커를 시작할 때마다:
boot2docker init
boot2docker up
그럼 언제up
운영이 되었고, 몇 개의 정보를 제공합니다.export
명령들. 복사 붙여넣기 하고 실행합니다복사 붙여넣고 실행합니다.
마침내.docker info
제대로 설치되어 있다고 말씀드릴 겁니다
데모로
나머지 명령어는 데모를 해야 합니다. (Ubuntu linux에서는 sudo가 필요했습니다.)
docker run hello-world
docker run -it ubuntu bash
그런 다음 컨테이너의 루트 셸에 있어야 합니다.
apt-get install nano
exit
기본 사용자 bash로 돌아가기:
docker ps -l
"컨테이너 ID) 약 "Container ID"( ID) 에서 12의 16(0-9 a-f) ).456789abcdef
. 그런 다음 변경 사항을 적용하고 이름을 설명적인 이름으로 지정할 수 있습니다.descriptivename
:
docker commit 456789abcdef descriptivename`
Linux Ubuntu/Mint에서 Docker를 실행하는 데 필요한 모든 것:
sudo apt-get -y install lxc
sudo gpasswd -a ${USER} docker
newgrp docker
sudo service docker restart
또는 위에서 작동하지 않을 경우 두 개의 종속성을 추가로 설치해야 할 수도 있습니다.
sudo apt-get -y install apparmor cgroup-lite
sudo service docker restart
여기서 해결책을 써봤는데 boot2docker가 작동하지 않았습니다.
내 솔루션:Mac에서 boot2docker를 제거하고 VirtualBox에 Centos 7 VM을 설치한 후 해당 VM 내에서 Docker와 함께 작업합니다.
저에게는 다음과 같은 단계가 효과적이었습니다.
- 저는 그가 도망치는 것을 알아챘습니다.
docker run hello-world
질문에서와 같이 이 Socked 오류가 발생하여 실패하지만 실행 중입니다.sudo docker run hello-world
일했다. - 현재 사용자를 에 추가했습니다.
docker
룹.sudo adduser user docker
. 그런 다음 컴퓨터를 다시 시작해야 합니다.su - user
(사용여부 확인)groups
명령을 입력합니다.docker
모둠).
그 다음에.hello-world
일하기 시작했습니다.
제 대답은 어떻게 sudo 없이 도커를 사용할 수 있나요?에 기반을 두고 있습니다.그게 뭐가 잘못됐는지 설명해주는 거지
이 질문과 관련 질문의 모든 솔루션을 사용해 보았는데 VirtualBox를 제거하고 다시 설치하기 전까지는 문제가 해결되지 않았습니다.이 프로세스는 VirtualBox를 버전 4.2.16에서 4.3.22로 업그레이드했습니다(이전 버전은 몇 달 동안 시스템에 사용되지 않고 방치되어 있었습니다).
그리고나서boot2docker
그리고.docker
다른 조정 없이 일했습니다.
저도 같은 문제가 있었습니다.단순한service docker restart
문제를 해결했습니다.
도커 데몬은 TCP 포트 대신 유닉스 소켓에 바인딩됩니다.기본적으로 유닉스 소켓은 사용자 루트가 소유하며 다른 사용자는 sudo를 사용해서만 액세스할 수 있습니다.도커 데몬은 항상 루트 사용자로 실행됩니다.
sudo groupadd docker
sudo usermod -aG docker $USER
로그아웃 후 다시 로그인하여 그룹 구성원 자격을 재평가합니다.
docker run hello-world
저는 같은 문제가 있어서 운이 없이 .bash_profile 파일을 수정하고 로그인하고 로그아웃하는 등 여러 가지를 시도했습니다.결국 내 기계를 다시 시작해보니 고쳐졌습니다.
꼭 있어야 합니다.
127.0.0.1 localhost
당신의
`/etc/hosts `
파일.
Jenkins에서 Docker 이미지를 만들 때도 같은 문제에 직면했습니다.사용자를 에 추가하기만 하면 됩니다.docker
그룹화한 다음 도커 서비스를 다시 시작하고 제 경우에는 젠킨스 서비스를 다시 시작해야 했습니다.
이것이 제가 받은 오류입니다.
http:///var/run/docker.sock/v1.19/build?cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&memory=0&memswap=0&rm=1&t=59aec062a8dd8b579ee1b61b299e1d9d340a1340: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
FATAL: Failed to build docker image from project Dockerfile
java.lang.RuntimeException: Failed to build docker image from project Dockerfile
Solution:
[root@Jenkins ssh]# groupadd docker
[root@Jenkins ssh]# gpasswd -a jenkins docker
Adding user jenkins to group docker
[root@Jenkins ssh]# /etc/init.d/docker restart
Stopping docker: [ OK ]
Starting docker: [ OK ]
[root@Jenkins ssh]# /etc/init.d/jenkins restart
Shutting down Jenkins [ OK ]
Starting Jenkins [ OK ]
[root@Jenkins ssh]#
BIOS CPU 시각화가 활성화되지 않은 것도 원인일 수 있습니다.먼저 가서 활성화하세요!
언급URL : https://stackoverflow.com/questions/27528337/am-i-trying-to-connect-to-a-tls-enabled-daemon-without-tls
'source' 카테고리의 다른 글
첫 번째 git 커밋 메시지를 어떻게 다시 쓸 수 있습니까? (0) | 2023.10.26 |
---|---|
봄의 jdbc 템플릿인 이유.batchUpdate() 너무 느리다고요? (0) | 2023.10.26 |
ResponseEntity와 @ResponseBody의 차이점은 무엇입니까? (0) | 2023.10.26 |
배열에서 요소의 모든 발생에 대한 인덱스를 찾는 방법은? (0) | 2023.10.26 |
쿼리를 밀리초 안에 실행하기 위해 인덱스를 향상시키는 방법은 무엇입니까? (0) | 2023.10.26 |