여러 도커 합성 프로젝트 간의 통신
두 개가 따로 있습니다.docker-compose.yml다른 파일: 개의다른폴있는일파에:
~/front/docker-compose.yml~/api/docker-compose.yml
컨테이너가 다음에 있는지 확인하려면 어떻게 해야 합니다.front 수 .api?
나는 그것을 알고 있습니다.--default-gateway옵션은 다음을 사용하여 설정할 수 있습니다.docker run의 경우 를 이 할 수 , 이할 수 없는 것 .docker-compose.
현재 나는 결국.docker inspect my_api_container_id출력에서 게이트웨이를 확인합니다.작동은 되는데 문제는 이 IP가 임의로 귀속되어 제가 의지할 수 없다는 것입니다.
따라서 이 질문의 다른 형태는 다음과 같습니다.
- 도커 합성을 사용하여 고정 IP 주소를 특정 컨테이너에 귀속시킬 수 있습니까?
하지만 결국 제가 주목하는 것은 다음과 같습니다.
- 서로 다른 두 도커 구성 프로젝트는 어떻게 서로 통신할 수 있습니까?
서로 통신할 컨테이너가 동일한 네트워크에 있는지 확인하기만 하면 됩니다.네트워크는 1등급 도커 구조이며 구성에 특정하지 않습니다.
# front/docker-compose.yml
version: '2'
services:
front:
...
networks:
- some-net
networks:
some-net:
driver: bridge
...
# api/docker-compose.yml
version: '2'
services:
api:
...
networks:
- front_some-net
networks:
front_some-net:
external: true
앱의 , 는 앱이 을 기반으로 . 이 접두사는 " 앱네프을는크이을이름", " 앱되며지정기준으이이름로이는접이이위치참고디한름기합렉리, 터준으경두사우로니다의트워트젝로을이▁note▁name'"기이접▁is준▁prefix합으로니다▁yourproject▁based▁app(▁in)▁in위앱름디참▁it치한리터::프고▁given"입니다.
front_추가되었습니다.
그런 다음 서비스 이름을 사용하여 서로 대화할 수 있습니다.front할수있습니다ping api그리고 역도 성립.
업데이트: 작성 파일 버전 3.5 기준:
이제 작동합니다.
version: "3.5"
services:
proxy:
image: hello-world
ports:
- "80:80"
networks:
- proxynet
networks:
proxynet:
name: custom_network
docker-compose up -d'custom_network'라는 합니다.존재하지 않으면 생성됩니다!
root@ubuntu-s-1vcpu-1gb-tor1-01:~# docker-compose up -d
Creating network "custom_network" with the default driver
Creating root_proxy_1 ... done
이제 다음을 수행할 수 있습니다.
version: "2"
services:
web:
image: hello-world
networks:
- my-proxy-net
networks:
my-proxy-net:
external:
name: custom_network
이렇게 하면 외부 네트워크에 있는 컨테이너가 생성됩니다.
아직 문서에서 참조할 내용을 찾을 수 없지만 작동합니다!
@약간의 만 해도, 파일을때, johnharis85 의륭로도으에간한훌, ,"default네트워크가 생성되므로 다른 컴포지트 파일에 외부 네트워크로 추가할 수 있습니다.
# front/docker-compose.yml
version: '2'
services:
front_service:
...
...
# api/docker-compose.yml
version: '2'
services:
api_service:
...
networks:
- front_default
networks:
front_default:
external: true
저는 첫 번째 도커 합성 파일을 소유하지 않았고 이 파일과 통신하기를 원했기 때문에 이 접근 방식이 더 적합했습니다.
의 모든 :api가입할 수 있습니다.front 구성이 다음과 같은 기본 네트워크:
# api/docker-compose.yml
...
networks:
default:
external:
name: front_default
도커 구성 안내서: 기존 네트워크 사용(하단 참조)을 참조하십시오.
다들 설명을 잘 해주셔서 간단한 설명 하나로 필요한 코드를 추가하겠습니다.
컴포지(") 합니다. docker-compose 전3.5+.
docker-compose.yml이 " " " " 인 네트워크를 .giveItANamePlease아래와 같이
networks:
my-network:
name: giveItANamePlease
driver: bridge
초의서스의 .docker-compose.yml파일은 다음과 같이 네트워크를 사용할 수 있습니다.
networks:
- my-network
세컨드 docker-compose파일, 우리는 우리가 처음에 사용한 네트워크 이름을 사용하여 네트워크를 프록시해야 합니다.docker-compose파일, 이경다같음습다니과입니다.giveItANamePlease:
networks:
my-proxy-net:
external:
name: giveItANamePlease
은 제사수있다니습할을 사용할 수 .my-proxy-net의 大夫를 .docker-compose.yml다음과 같이 철합니다.
networks:
- my-proxy-net
이전 게시물 정보는 정확하지만 컨테이너를 연결하는 방법에 대한 자세한 내용은 없으며, "external_links"로 연결해야 합니다.
이 예를 통해 다음과 같은 사항을 보다 명확하게 확인할 수 있기를 바랍니다.
두 개의 서비스(svc11 및 svc12)가 있는 app1/docker-compose.yml과 두 개의 서비스(svc21 및 svc22)가 있는 app2/docker-compose.yml이 있다고 가정하고 교차 방식으로 연결해야 한다고 가정합니다.
svc11은 svc22의 컨테이너에 연결해야 합니다.
- svc21은 svc11의 컨테이너에 연결해야 합니다.
따라서 구성은 다음과 같습니다.
이것은 app1/syser-message.yml입니다.
version: '2'
services:
svc11:
container_name: container11
[..]
networks:
- default # this network
- app2_default # external network
external_links:
- container22:container22
[..]
svc12:
container_name: container12
[..]
networks:
default: # this network (app1)
driver: bridge
app2_default: # external network (app2)
external: true
이것은 app2/syser-message.yml입니다.
version: '2'
services:
svc21:
container_name: container21
[..]
networks:
- default # this network (app2)
- app1_default # external network (app1)
external_links:
- container11:container11
[..]
svc22:
container_name: container22
[..]
networks:
default: # this network (app2)
driver: bridge
app1_default: # external network (app1)
external: true
Compose 1.18(spec 3.5) 이후에는 필요한 모든 Compose YAML 파일에 대해 사용자 정의 이름을 사용하여 기본 네트워크를 재정의할 수 있습니다.이는 다음을 추가하는 것과 마찬가지로 간단합니다.
networks:
default:
name: my-app
위의 가정은 다음과 같습니다.
version로 설정한.3.5(또는 4+에서 더 이상 사용하지 않는 경우).
다른 답변들도 동일하게 지적했습니다. 이것은 단순화된 요약입니다.
업데이트: 도커 합성 파일 버전 3.5 기준:
저는 비슷한 문제를 발견했고 저의 docker-compose.yml 프로젝트 중 하나에 작은 변경 사항을 추가하여 해결했습니다.
를 들어,는 두 의 "", "가개다 API"를 가지고 있습니다.scoring그리고.ner.Scoring는 API로 .ner입력 요청을 처리하기 위한 API입니다.그러기 위해서는 둘 다 같은 네트워크를 공유해야 합니다.
참고: 모든 컨테이너에는 도커 내부에서 앱을 실행할 때 자동으로 생성되는 자체 네트워크가 있습니다.예를 들어 ner API 네트워크는 다음과 같이 생성됩니다.ner_default채점 API 네트워크의 이름은 다음과 같습니다.scoring default은 버전 '3'에 적용됩니다.
위의 시나리오와 같이, 나의 스코어링 API는 ner API와 통신하기를 원하며, 나는 아래의 행을 추가할 것입니다.즉, ner API용 컨테이너를 만들 때마다 scoring_default 네트워크에 자동으로 추가됩니다.
networks:
default:
external:
name: scoring_default
ner/computer-computer.yml
version: '3'
services:
ner:
container_name: "ner_api"
build: .
...
networks:
default:
external:
name: scoring_default
스코어링/스캐너-스캐너.yml
version: '3'
services:
api:
build: .
...
이 이제 알수.scoring_default다음 명령 사용:
도커 검사 스코어링_기본값
{
"Name": "scoring_default",
....
"Containers": {
"14a6...28bf": {
"Name": "ner_api",
"EndpointID": "83b7...d6291",
"MacAddress": "0....",
"IPv4Address": "0.0....",
"IPv6Address": ""
},
"7b32...90d1": {
"Name": "scoring_api",
"EndpointID": "311...280d",
"MacAddress": "0.....3",
"IPv4Address": "1...0",
"IPv6Address": ""
},
...
}
정답이 많네요.
먼저 서비스 및 네트워크와 같은 엔티티 이름에는 하이픈을 사용하지 마십시오.이름 확인에 문제가 발생합니다.
예:my-api작동하지 않습니다.myapi또는api효과가 있을 것입니다.
저에게 효과가 있었던 것은 다음과 같습니다.
# api/docker-compose.yml
version: '3'
services:
api:
container_name: api
...
ports:
- 8081:8080
networks:
- mynetwork
networks:
mynetwork:
name: mynetwork
그리고.
# front/docker-compose.yml
version: '3'
services:
front:
container_name: front
...
ports:
- 81:80
networks:
- mynetwork
networks:
mynetwork:
name: mynetwork
참고: 서비스가 서로 액세스하는 방법과 호스트에서 서비스에 액세스하는 방법을 보여주기 위해 포트를 추가했습니다.
중요: 네트워크를 지정하지 않은 경우name,docker-compose당신을 위해 하나를 만들어 줄 것입니다.인 폴의이사용다니합름을을 사용합니다.docker_compose.yml파일이 있습니다. 이경우:api_mynetwork그리고.front_mynetwork이렇게 하면 컨테이너가 매우 유사한 이름을 가진 다른 네트워크를 통해 전달되기 때문에 컨테이너 간의 통신이 차단됩니다.
네트워크는 두 파일 모두에서 정확히 동일하게 정의되므로 두 서비스 중 하나를 먼저 시작하면 작동합니다.가 없습니다.docker-compose당신을 위해 그것을 관리할 것입니다.
호스트에서
에 정의된 게시된 포트를 사용하여 두 컨테이너 중 하나에 액세스할 수 있습니다.docker-compose.yml.
컨테이너에 액세스할 수 .curl http://localhost:81
컨테이너 API를 이용하실 수 있습니다.curl http://localhost:8081
API 컨테이너에서
게시한 포트가 아닌 원래 포트를 사용하여 전면 컨테이너에 액세스할 수 있습니다.docker-compose.yml.
예:curl http://front:80
전면 컨테이너에서
게시한 포트가 아닌 원래 포트를 사용하여 API 컨테이너에 액세스할 수 있습니다.docker-compose.yml.
예:curl http://api:8080
추가할 수 있습니다..env다을포함모파프일트로젝이 포함된 모든 .COMPOSE_PROJECT_NAME=somename.
모든 프로젝트에서 사용할 리소스 이름을 지정하는 데 사용되는 접두사를 COMPASE_PROPJE_NAME이(가) 재정의합니다.somename_default서비스가 동일한 프로젝트에 있는 것처럼 서로 통신할 수 있도록 하는 네트워크입니다.
NB: 다른 프로젝트에서 생성된 "연결되지 않은" 컨테이너에 대한 경고가 표시됩니다.
다른 도커 합성 네트워크를 사용하는 경우 다음 작업을 수행합니다(도커 합성 간에 네트워크를 공유하기 위해).
- 의해 첫
up -d- 으로 첫 번째 의 네트워크 이름을 다음과 같이 구성합니다.
docker network ls프로젝트의 되어 있습니다- 그런 다음 두 번째 도커 합성 파일의 아래 구조에 해당 이름을 사용합니다.
두 번째 도커-docker-docker.yml
version: '3'
services:
service-on-second-compose: # Define any names that you want.
.
.
.
networks:
- <put it here(the network name that comes from "docker network ls")>
networks:
- <put it here(the network name that comes from "docker network ls")>:
external: true
용기가 모든컨너가이테▁all가ers▁are너컨▁i▁ensure▁contain가 되도록 하겠습니다.docker-compose다음을 사용하여 동일한 네트워크에 동시에 구성합니다.
docker compose --file ~/front/docker-compose.yml --file ~/api/docker-compose.yml up -d
두 개의 도커 구성을 연결하려면 네트워크가 필요하고 두 개의 도커 구성을 모두 해당 네트워크에 넣으려면 도커 네트워크로 name-of-network를 만들 수 있습니다.
또는 네트워크 선언을 도커-디버깅 파일의 네트워크 옵션에 넣기만 하면 도커-디버깅(디버깅)을 실행하면 네트워크가 자동으로 생성됩니다.
다음 행을 두 도커 파일에 모두 입력합니다.
networks:
net-for-alpine:
name: test-db-net
참고: net-for-alpine은 네트워크의 내부 이름이며 도커 합성 파일 내부에서 사용되며 다를 수 있습니다. test-db-net은 네트워크의 외부 이름이며 두 개의 도커 합성 파일에서 동일해야 합니다.
docker-compose.db.yml 및 docker-compose.alpine.yml이 있다고 가정합니다.
도커-docker.appline.yml은 다음과 같습니다.
version: '3.8'
services:
alpine:
image: alpine:3.14
container_name: alpine
networks:
- net-for-alpine
# these two command keeps apline container running
stdin_open: true # docker run -i
tty: true # docker run -t
networks:
net-for-alpine:
name: test-db-net
도커-docker.db.yml은 다음과 같습니다.
version: '3.8'
services:
db:
image: postgres:13.4-alpine
container_name: psql
networks:
- net-for-db
networks:
net-for-db:
name: test-db-net
네트워크를 테스트하려면 알파인 컨테이너 안으로 들어가십시오.
docker exec -it alpine sh
그런 다음 다음 명령을 사용하여 네트워크를 확인할 수 있습니다.
# if it returns 0 or see nothing as a result, network is established
nc -z psql (container name)
또는
ping pgsql
만약 네가
- 서로 다른 도커 합성 프로젝트의 두 컨테이너 간에 통신을 시도하고 동일한 네트워크를 사용하지 않으려고 합니다(예: Postgre가 있다고 가정해 보겠습니다).동일한 포트에 있는 SQL 또는 Redis 컨테이너이며 이러한 포트를 변경하지 않고 동일한 네트워크에서 사용하지 않는 것이 좋습니다.)
- 로컬로 개발하고 두 도커 작성 프로젝트 간의 통신을 모방하고 싶어함
- 로컬 호스트에서 두 개의 도커 할당 프로젝트 실행
- 특히 Django 앱 또는 Django Rest Framework(drf) API를 개발하고 일부 노출 포트에서 컨테이너 내부에서 앱을 실행합니다.
- ~다점 받기
Connection refused두 컨테이너 간의 통신을 시도하는 동안
그리고 당신이 원하는 것은
- 용기에 .
api_a에전다에게api_b(또는 그 반대의 경우) 동일한 "네트워크"가 없는 경우
(아래 참조)
두 번째 컨테이너의 "host"를 Docker 컨테이너 내부에서 매핑된 포트와 컴퓨터의 IP로 사용할 수 있습니다.다음 스크립트를 사용하여 컴퓨터의 IP를 가져올 수 있습니다(From: Python의 stdlib를 사용하여 로컬 IP 주소 찾기).
import socket
def get_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
# doesn't even have to be reachable
s.connect(('10.255.255.255', 1))
IP = s.getsockname()[0]
except:
IP = '127.0.0.1'
finally:
s.close()
return IP
예:
project_api_a/docker-compose.yml:
networks:
app-tier:
driver: bridge
services:
api:
container_name: api_a
image: api_a:latest
depends_on:
- postgresql
networks:
- app-tier
東京의 api_a앱을 실행 : Django 을앱중인컨테너:manage.py runserver 0.0.0.0:8000
다른 프로젝트의 두 번째 도커-docker-docker.yml:
project_api_b/docker-compose-yml:
networks:
app-tier:
driver: bridge
services:
api:
container_name: api_b
image: api_b:latest
depends_on:
- postgresql
networks:
- app-tier
東京의 api_b앱을 실행 : Django 을앱중인컨테너:manage.py runserver 0.0.0.0:8001
컨테이너에서 .api_aapi_b에 다음의 의 URL.api_b다음과 같습니다.http://<get_ip_from_script_above>:8001/
두 개 이상(3개 이상)의 도커 합성 프로젝트를 사용하고 있는데 이 모든 프로젝트에 공통 네트워크를 제공하기 어려운 경우 특히 유용할 수 있습니다. 해결 방법과 솔루션이 좋습니다.
.env 파일을 사용하여 여러 개의 동일한 docker-compose.yml 파일을 서로 다른 디렉토리에서 실행하고 있습니다.또한 Nginx Proxy Manage를 사용하여 다른 서비스와 통신합니다.여기 내 파일이 있습니다:
공용 네트워크를 생성했는지 확인합니다.
docker network create nginx-proxy-man
/domain1.com/docker-compose.yml, /domain2.com/docker-compose.yml, ...
version: "3.9"
services:
webserver:
build:
context: ./bin/${PHPVERSION}
container_name: "${COMPOSE_PROJECT_NAME}-${PHPVERSION}"
...
networks:
- default # network outside
- internal # network internal
database:
build:
context: "./bin/${DATABASE}"
container_name: "${COMPOSE_PROJECT_NAME}-${DATABASE}"
...
networks:
- internal # network internal
networks:
default:
external: true
name: nginx-proxy-man
internal:
internal: true
change .env 파일 이름이 변경되었습니다.COMPOSE_PROJECT_NAME
COMPOSE_PROJECT_NAME=domain1_com
.
.
.
PHPVERSION=php56
DATABASE=mysql57
webserver.container_name: domain1_com-php56 - 이전에 Nginx Proxy Manager가 외부에서 액세스할 수 있도록 생성된 기본 네트워크(이름: nginx-proxy-man)에 가입합니다.
참고: container_name은(는) 동일한 네트워크에서 고유합니다.
database.database_name: domain1_com-dll57 - 구별하기 더 쉽습니다.
동일한 docker-compose.yml에서 서비스는 동일한 네트워크 domain1_com_internal로 인해 서비스 이름을 통해 서로 연결됩니다.하기 위해 이 를 옵션으로 합니다.internal: true
각 서비스에 대한 네트워크를 명시적으로 지정하지 않고 도커-compose.yml 모두에 대해 공통 외부 네트워크만 사용하는 경우 domain1_com이 domain2_com의 데이터베이스를 사용할 가능성이 높습니다.
또 다른 옵션은 '도커 합성'으로 첫 번째 모듈을 실행하여 모듈과 관련된 IP를 확인하고 두 번째 모듈을 외부와 같이 이전 네트와 연결하여 내부 IP를 가리키는 것입니다.
예제 app1 - 서비스 라인에서 생성된 new-network, 아래쪽 app2에서 external: true로 표시 - 올라갈 때 app1에서 생성된 "new-network"를 나타내고, 아래쪽에서 external: true로 표시하고, 연결할 구성에서 app1이 이 넷에 가지고 있는 IP를 설정합니다.
이것으로 당신은 서로 대화할 수 있을 것입니다.
*이 방법은 지나치게 복잡한 구성을 수행하지 않기 위해 로컬 테스트에만 초점을 맞춘 것입니다. ** 매우 '패치 방식'이라는 것을 알고 있지만 저에게 적합하며 다른 사용자가 이를 활용할 수 있는 매우 단순한 방법이라고 생각합니다.
오버레이 네트워크가 있는 도커 스웜에서 작업하는 별도의 도커 합성 파일을 사용하여 네트워크 매개 변수를 변경하는 작업을 수행한 적이 있습니다.
최초의 도커 조종사얌
version: '3.9'
.
.
.
networks:
net:
driver: overlay
attachable: true
docker-compose -p app up
을 앱 이 다 같 이 때 지 했 기 정 문 에 과 름 음 을 때 에 문 ▁name 기 ▁since ▁the ▁i ▁as ▁app 했 ▁specified 앱app용사를 -p초기 네트워크는 app_net입니다.이제 동일한 네트워크를 사용하는 여러 서비스와 함께 다른 도커를 실행하려면 다음과 같이 설정해야 합니다.
두 번째 도커 조종 장치얌
version: '3.9'
.
.
.
networks:
net-ref:
external: true
name: app_net
docker stack deploy -c docker-compose.yml mystack
을 받지 "" "" " " " " "라는 기존 합니다.app_net.
PS: 도커 합성 버전을 확인하는 것이 중요합니다.
John Harris의 답변에 대한 후속 조치로 누군가에게 유용할 수 있는 몇 가지 세부 사항을 추가할 뿐입니다.두 개의 도커 합성 파일을 가져와 네트워크를 통해 연결합니다.
- 첫 번째 폴더 이름/folder-folder.yml:
version: '2'
services:
some-contr:
container_name: []
build: .
...
networks:
- somenet
ports:
- "8080:8080"
expose:
# Opens port 8080 on the container
- "8080"
environment:
PORT: 8080
tty: true
networks:
boomnet:
driver: bridge
- 두 번째 도커-docker-docker.yml:
version: '2'
services:
pushapiserver:
container_name: [container_name]
build: .
command: "tail -f /dev/null"
volumes:
- ./:/[work_dir]
working_dir: /[work dir]
image: [name of image]
ports:
- "8060:8066"
environment:
PORT: 8066
tty: true
networks:
- foldername_somenet
networks:
foldername_somenet:
external: true
이제 다음과 같은 다른 서비스(b/wdiff 컨테이너)에 대해 api 호출을 할 수 있습니다. http://pushapiserver:8066/send_push 호출은 파일의 일부 코드에서 1st docker-compose.yml입니다.
두 가지 일반적인 실수(적어도 몇 번은 실수했습니다):
- 도커-docker.yml 파일이 있는 [foldername]을(를) 기록합니다.위의 두 번째 docker-compose.yml에서 [foldername]_[networkname]을(를) 통해 네트워크 bc docker에 폴더 이름을 추가했습니다.
- 포트: 이것은 매우 흔합니다.연결을 시도할 때 8066을 사용했습니다. 예를 들어, http://pushapiserver:8066/... 8066은 도커 컨테이너(두 번째 도커-compose.yml)의 포트이므로 다른 도커 컴포지트와 대화를 시도할 때 사용됩니다.
도커는 호스트 시스템 매핑 포트 [8060]가 아닌 도커 컨테이너 포트 [8066]를 사용합니다.
다음은 IP 주소를 사용하는 예제입니다.첫 번째 도커 구성은 향후 컨테이너가 가입할 수 있는 네트워크를 생성해야 합니다.다음은 코드 조각입니다.
version: "3"
services:
app:
image: "jc21/nginx-proxy-manager:latest"
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
customnetwork:
ipv4_address: 172.20.0.10
networks:
customnetwork:
ipam:
config:
- subnet: 172.20.0.0/24
두 번째 도커 합성은 생성된 네트워크에 참여해야 합니다.
version: "3"
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
command: -H unix:///var/run/docker.sock
ports:
- 9000:9000
- 9443:9443
volumes:
- portainer_data:/data
- /var/run/docker.sock:/var/run/docker.sock
networks:
nginxproxymanager_customnetwork:
ipv4_address: 172.20.0.11
restart: unless-stopped
volumes:
portainer_data:
networks:
nginxproxymanager_customnetwork:
external: true
출처: WordPress/Mysql Docker 네트워킹으로 구성
version: '2'
services:
bot:
build: .
volumes:
- '.:/home/node'
- /home/node/node_modules
networks:
- my-rede
mem_limit: 100m
memswap_limit: 100m
cpu_quota: 25000
container_name: 236948199393329152_585042339404185600_bot
command: node index.js
environment:
NODE_ENV: production
networks:
my-rede:
external:
name: name_rede_externa
도커 작곡 '3' 이상에 대한 답변
기본적으로 Docker Compose는 브리지 네트워크를 사용하여 컨테이너 간 통신을 프로비저닝합니다.컨테이너 간 네트워킹에 대한 자세한 내용은 이 문서를 참조하십시오.
중요한 것은 기본적으로 Docker Compose가 docker-compose.yml 파일의 서비스 이름과 동일한 호스트 이름을 생성한다는 것입니다.다음 docker-compose.yml을 고려해 보십시오.
version: '3.9'
services:
server:
image: node:16.9.0
container_name: server
tty: true
stdin_open: true
depends_on:
- mongo
command: bash
mongo:
image: mongo
environment:
MONGO_INITDB_DATABASE: my-database
도커 컴포지업을 실행하면 도커가 기본 네트워크를 만들고 서비스 이름을 mongo와 서버 모두에 대한 호스트 이름으로 할당합니다.
이제 다음을 통해 백엔드 컨테이너에 액세스할 수 있습니다.
docker exec -it server bash
이제 Dockers 내부 네트워크를 사용하여 mongo 컨테이너를 ping할 수 있습니다(이 경우 포트 27017의 기본값).
curl -v http://mongo:27017/my-database
바로 그겁니다.설정에도 동일하게 적용됩니다.
언급URL : https://stackoverflow.com/questions/38088279/communication-between-multiple-docker-compose-projects
'codememo' 카테고리의 다른 글
| Excel interop으로 저장 대화 상자를 표시하지 않고 워크북을 저장하는 방법은 무엇입니까? (0) | 2023.09.05 |
|---|---|
| 특정 디본 클릭으로 부드럽게 스크롤 (0) | 2023.09.05 |
| 쿼리 패킷 PID를 보내는 동안 Mariadb max 오류가 발생했습니다. (0) | 2023.09.05 |
| 환경 변수나 시스템 속성이 아닌 속성 파일을 통해 액티브 스프링 3.1 환경 프로필을 설정하는 방법 (0) | 2023.09.05 |
| pinterest.com 의 절대 div 스태킹 레이아웃을 복제하는 방법 (0) | 2023.09.05 |