docker swarm 모드에서 webapp를 데이터베이스에 연결하는 방법을 알고 싶습니다. 저는 도커 모드를 사용하는 데있어 매우 익숙하며 로컬 컴퓨터에서 기본 클러스터 설정을했습니다. 모든 링크가 좋을 것입니다.Docker Swarm 모드에서 앱 연결
예 : drupal 응용 프로그램 호스팅 (drupal CMS 컨테이너에 mysql 데이터베이스 컨테이너가 연결됨).
감사 고정 표시기의 링크를 사용하여
docker swarm 모드에서 webapp를 데이터베이스에 연결하는 방법을 알고 싶습니다. 저는 도커 모드를 사용하는 데있어 매우 익숙하며 로컬 컴퓨터에서 기본 클러스터 설정을했습니다. 모든 링크가 좋을 것입니다.Docker Swarm 모드에서 앱 연결
예 : drupal 응용 프로그램 호스팅 (drupal CMS 컨테이너에 mysql 데이터베이스 컨테이너가 연결됨).
감사 고정 표시기의 링크를 사용하여
는
가 고정 표시기 네트워크를 사용하는 것입니다 수행하는 "새로운"방법 (나는 아직도이 방법 자신을 사용하지만) 왜 용기에 연결하는 기존의 분명히 더 , 당신은 여기에 대한 자세한 내용을보실 수 있습니다 : https://docs.docker.com/engine/userguide/networking/get-started-overlay/
희망이
수정, 사용자 정의 네트워크를 사용하는 것은 앞으로 방법입니다 도움이됩니다. 아주 간단한 예를 들어 보겠습니다.
"오버레이"네트워크를 만듭니다 (오버레이 네트워크는 컨테이너가 웜의 다른 노드에서 실행 중이더라도 통신 할 수 있습니다).
docker network create --driver=overlay my-network
는
my-db
라는 이름의 데이터베이스 서비스를 만들고, 그것은
my-network
네트워크에 연결합니다. drupal은
my-network
네트워크를 통해 데이터베이스에 연결하기 때문에 데이터베이스 포트를 "게시"할 필요가 없습니다. 데이터베이스에 공개적으로 액세스하려면 데이터베이스 포트만 게시하십시오.
docker service create \
--name=my-db \
-e MYSQL_ROOT_PASSWORD=topsecret \
-e MYSQL_DATABASE=drupal\
-e MYSQL_USER=drupal-user \
-e MYSQL_PASSWORD=secret \
--network=my-network \
mysql:5.7
drupal 서비스 (이름이 mysite
)를 만들고 동일한 네트워크에 연결하십시오. 당신이 서비스가 만들어
docker service create \
--name=mysite \
--network=my-network \
--publish=8080:80 \
drupal:8.2-apache
후 공개적으로 액세스 할 수 있도록 원하기 때문에, 사이트의 포트를 게시하고, 용기는 (당신이 docker service ls
와 상태를 확인할 수 있습니다), 당신은 당신의 브라우저에서 <host-ip>:8080
를 방문 할 수 있습니다 실행하고 있습니다. 스웜 모드에서 <host-ip>
은 의 IP 주소가 될 수 있습니다. 호스트에 있습니다. "라우팅 메쉬"는 컨테이너가 실행되는 노드에 네트워크 연결을 자동으로 라우팅합니다. 이제
, 당신은 MYSQL_USER
및 MYSQL_PASSWORD
에서 설정 한 사용자 이름/암호를 사용하고 (고급 옵션에서) 데이터베이스에 대한 호스트 이름으로 my-db
를 사용하여, 드루팔을 구성 할 수 - 고정 표시기 네트워크를 사용하는 경우, 같은 다른 서비스에 연결할 수 있습니다 네트워크를 구성 할 수 있습니다.
이 그냥 아주 간단한 예이다. 들여다 볼 수있는 것들이 있습니다.
docker secrets
을 도입하여보다 안전한 방법으로 데이터베이스 자격 증명을 전달할 수 있습니다. 문서가 아직 게시되지 않았지만 할 수 있습니다. find them on GitHub