"terraform apply"에서 도커 서버 ping 오류 발생
나는 테라폼 튜토리얼을 하고 있고 실행할 단계에 도달했다.
해당 명령을 실행한 후 다음 오류가 발생합니다:
WARNING: cgroup v2 is not fully supported yet, proceeding with partial confinement
Error: Error pinging Docker server: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
on main.tf line 9, in provider "docker":
9: provider "docker" {
구성 파일에 있는 내용은 다음과 같습니다:
terraform {
required_providers {
docker = {
source = "kreuzwerker/docker"
}
}
}
provider "docker" {
}
resource "docker_image" "nginx" {
name = "nginx:latest"
keep_locally = false
}
resource "docker_container" "nginx" {
image = docker_image.nginx.latest
name = "tutorial"
ports {
internal = 80
external = 8000
}
}
공급자 기능을 추가하려고 했지만 여전히 오류가 발생합니다. 내 PC에도 도커와 NGINX가 구성되어 있다.
무엇이 그것을 유발하는지 아는 사람이 있나요?
Docker CLI 도구가 /usr/local/bin 및 Set /var/run/docker에 설치되어 있는지 확인합니다.terrafor와 같은 일부 타사 클라이언트가 도커와 통신하는 데 사용할 수 있는 양말
참조:
사용자 ID로 실행하면 동일한 오류가 표시됩니다. 사용자가 도커 명령을 실행할 수 있는 액세스 권한이 없기 때문에 이 문제가 발생합니다. 다음 단계를 수행하십시오.
- --> 도커를 올바르게 설치한 경우 도커 그룹을 사용할 수 있어야 합니다.
- 도커 그룹에 사용자 ID 추가
- 세션에서 로그아웃한 후 다시 로그인합니다
- --> 이제 오류 없이 실행됩니다.
이제 테라폼을 다시 적용해보면 모든 것이 작동할 것이다.
명령이 성공하면 테라폼 공급자가 사용하는 기본 호스트가 올바르지 않음을 의미합니다.
Docker Desktop을 해제하고 Dockerps를 작성하면 Docker Desktop이 찾고 있는 경로가 표시됩니다.
다시 부팅해야 했어요. 리눅스에서는 충분하지 않았다. Gnome에 로그아웃했다가 다시 로그인하는 것만으로는 충분하지 않았습니다. 그냥 다시 부팅하세요.
다음 명령을 사용하여 도커 소켓을 찾을 수 있습니다:
도커 컨텍스트
그런 다음 소켓 주소로 공급자 블록을 업데이트합니다
provider "docker" {
host = "unix:///home/rehman/.docker/desktop/docker.sock"
}
나는 회사 환경의 기계에 비슷한 문제가 있었다. 성공적으로 실행할 수 있으면 Docker 설치가 가능합니다. 실행을 실행하여 모든 컨텍스트를 인쇄합니다. 현재 활성 컨텍스트는 별표(*)로 표시됩니다.
튜토리얼을 위해 컨텍스트를 기본값으로 다시 전환할 수 있습니다:
docker context use default
또는 테라폼 main.tf 파일의 공급자 블록을 다음과 같이 지정하여 다른 연락처로 변경할 수 있습니다:
provider "docker" {
host = "your currently active context"
}
저의 경우, 저는 IT 담당자가 저도 모르게 기업에서 승인한 컨텍스트를 추가한 것으로 의심됩니다.
상황에 대한 몇 가지 배경
A는 여러 속성의 조합입니다. 여기에는 다음이 포함됩니다:
- 이름.
- 엔드포인트 구성
- TLS 정보
- 오케스트레이터
컨텍스트의 모양을 확인하는 가장 쉬운 방법은 컨텍스트를 보는 것입니다:
docker context ls
기본값이 활성 컨텍스트인 경우 열의 별표는 활성 컨텍스트임을 나타냅니다. 즉, 및 와 플래그가 있는 명령줄에서 또는 와 같은 환경 변수로 재정의되지 않는 한 모든 도커 명령이 "기본" 컨텍스트에서 실행됩니다.
'개발하자' 카테고리의 다른 글
FastAPI 엔드포인트 내의 동적 URL로 리디렉션하는 방법은 무엇입니까? (0) | 2023.07.16 |
---|---|
display_html 함수가 Jupyter Lab에서 작동하지 않습니다 (0) | 2023.07.15 |
VScode가 주피터 노트북을 HTML로 내보내지 못함 - 'jupitter-nbconvert'를 찾을 수 없음 (0) | 2023.07.14 |
TypeScript 게터를 메모하는 방법 (0) | 2023.07.13 |
Kubernetes yaml 파일로 동적 값을 설정하는 방법 (0) | 2023.07.13 |