Docker에서는 다른 네트워크를 선택하여 컨테이너에 네트워크 연결을 제공할 수 있습니다. 놀랍게도 Docker는 명시적으로 네트워크를 설정하지 않았음에도 불구하고 여전히 기본 네트워크를 컨테이너에 할당합니다. 이 문제는 네트워크 구성과 관련된 몇 가지 문제에 직면할 수 있으므로 많은 개발자를 괴롭힙니다. 이 기사에서는 Docker 컨테이너에 기본 네트워크가 있는 이유와 PHP 편집기 Youzi의 도움을 받아 다양한 네트워크 중에서 선택하는 방법을 자세히 설명합니다.
go 서비스를 위한 docker 구성을 설정하는 데 문제가 있습니다. 다음은 내 설정 개요입니다
으아악Graphql Playgroud(http)가 http://localhost:8080
에서 실행되고 있는데 포트가 공개된 것으로 추정되지만 놀이터 UI에 액세스할 수 없습니다.
내가 하고 싶은 일은:
rules_docker
와 동일한 네트워크에 배치하는 방법을 모르겠습니다). docker exec -it ... /bin/bash
내 docker 컨테이너에 추가합니다. (bash가 설치되지 않았기 때문에 작동하지 않지만 이 Container_image 명령을 통해 bash를 설치하는 방법을 모르겠습니다.)
오류는 다음과 같습니다: 생성된 도커 이미지 ID를 가져와 실행하면 docker run -p 8080:8080 image_id
graphql 플레이그라운드에 액세스할 수 있지만 mysql 컨테이너와 통신할 수 없습니다
다음과 같이 네트워크를 변경하는 경우: docker run --network=host -p 8080:8080 image_id
dockerized go 应用程序可以成功与 mysql 容器通信,但随后 graphql playground 变得无法访问。仅当我维护 --network=bridge
时,graphql 游乐场才可访问。我不确定为什么 mysql 也不使用 bridge
시작할 때 네트워크를 지정하지 않기 때문입니다. 이것이 내가 mysql 컨테이너를 얻은 방법입니다
go_binary( name = "main_arm64", embed = [":server_lib"], goarch = "arm64", goos = "linux", visibility = ["//visibility:public"], ) container_image( name = "ww_server_image", base = "@go_image_static_arm64//image", entrypoint = ["/main_arm64"], files = [":main_arm64"], ports = [ "8080", "3306", ], )
답은 여기에 있습니다: go 및 docker를 사용하여 mysql 서버에 연결할 수 없습니다. - 전화 접속 tcp 127.0.0.1:3306: 연결: 연결이 거부되었습니다
Mac의 docker는 Linux VM을 사용하기 때문에 실제로 다음 주소를 사용하여 mysql에 액세스해야 하는 것으로 나타났습니다.
으아악위 내용은 도커 컨테이너는 네트워크를 설정하지 않았음에도 불구하고 다른 네트워크를 선택합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!