Mysql+Tomcat으로 Docker 다중 컨테이너 연결을 설정하는 방법
이 글에서는 주로 Docker 다중 컨테이너 연결을 소개합니다(예: Tomcat+Mysql). Docker는 여러 컨테이너가 직접 액세스할 수 있는 방법을 제공합니다. access 네트워크 포트를 통한 액세스
Docker는 여러 컨테이너가 직접 액세스할 수 있는 방법을 제공합니다. 가장 간단한 방법은 포트 매핑 -p 매개변수를 사용하여 매핑된 포트를 지정하거나 -P를 사용하여 모든 포트를 매핑하는 것입니다. 액세스를 위해 네트워크 포트를 통해 직접 액세스합니다.
그러나 네트워크 포트 매핑 방법은 Docker에서 여러 컨테이너를 연결하는 유일한 방법은 아닙니다. 컨테이너가 함께 연결될 때 Docker의 연결 시스템(--link)을 사용하는 것이 더 안전한 방법입니다. 수신자 컨테이너는 소스 컨테이너의 정보를 볼 수 있습니다.
Tomcat + Mysql을 예로 들어 컨테이너 간 연결을 설정합니다.
컨테이너 간 직접 연결을 설정하려면 --link 옵션을 사용하세요
--link
여기에서는 두 개 이상의 컨테이너 간에 연결을 설정하는 방법을 설명하기 위해 Tomcat + Mysql 서비스를 구축합니다.
컨테이너 연결을 설정하려면 컨테이너 이름을 사용해야 합니다. --name을 사용하여 소스 컨테이너 이름을 mysql로 지정합니다
docker run --name mysql -d gsoft/mysql:5.6
다음으로 tomcat 컨테이너를 생성하고 mysql 컨테이너에 연결
코드는 다음과 같습니다.
docker run --name tomcat -d -p 80:8080 --link mysql:mysql gsoft/tomcat:7.0
여기서 --link 옵션을 사용하여 연결할 컨테이너가 mysql임을 지정합니다.
컨테이너 통신 정보
두 컨테이너를 연결한 후 수신 컨테이너(수신자)는 필연적으로 소스 컨테이너(소스)의 리소스에 액세스해야 합니다. 컨테이너에 대한 연결을 설정할 때 원본 컨테이너는 생성 시 노출될 포트를 지정하기 위해 -p/-P를 사용하지 않는데, 원본 컨테이너 정보에 어떻게 액세스합니까?
수신 컨테이너가 소스 컨테이너의 정보에 액세스할 수 있도록 Docker는
EnvironmentVariables
라는 두 가지 방법을 제공합니다./etc/hosts 파일
환경 변수
Docker가 컨테이너에 연결할 때 다음을 사용합니다. --link 제공된 매개변수는 소스 컨테이너의 Dockerfile에서 ENV 명령을 사용하여 설정된 환경 변수를 포함하여 수신자 컨테이너에 일부 환경 변수를 자동으로 생성하고 소스 컨테이너가 시작될 때(docker run) 다음을 사용합니다. e 또는 - -env, --env-file 매개변수로 지정된 환경 변수입니다.
에는 주로 다음과 같은 환경 변수가 포함되어 있으며 여기서 alias=mysql로 가정합니다.
<alias>_PORT <alias>_PORT_<port>_<protocol> <alias>_PORT_<port>_<protocol>_ADDR <alias>_PORT_<port>_<protocol>_PORT <alias>_PORT_<port>_<protocol>_PROTO <alias>_NAME
예:
#docker run -i -t --rm --link mysql:mysql ubuntu:14.04 env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=9c74aa611463 TERM=xterm MYSQL_PORT=tcp://172.17.0.3:3306 MYSQL_PORT_3306_TCP=tcp://172.17.0.3:3306 MYSQL_PORT_3306_TCP_ADDR=172.17.0.3 MYSQL_PORT_3306_TCP_PORT=3306 MYSQL_PORT_3306_TCP_PROTO=tcp MYSQL_NAME=/desperate_ritchie/mysql HOME=/root
위의 예에서 컨테이너 별칭은 msyql로 지정되므로 모든 환경 변수는 MYSQL_로 시작됩니다.
소스 컨테이너가 다시 시작되면 수신 컨테이너의 환경 변수 정보가 자동으로 업데이트되지 않으므로 소스 컨테이너의 IP 주소를 사용하려는 경우 호스트에 구성된 /etc/ 호스트 정보를 사용하십시오.
/etc/hosts 파일
Docker는 환경 변수 외에도 수신 컨테이너의 /etc/hosts 파일에 있는 호스트 정보도 업데이트합니다.
# docker run -i -t --rm --link mysql:mysql ubuntu:14.04 /bin/bash # cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.3 mysql 115346bdb403 172.17.0.5 09bdf7805133
위에서 볼 수 있듯이 수신 컨테이너의 호스트 파일에는 로컬 IP와 별칭, 소스 컨테이너(mysql)의 IP와 별칭이라는 두 가지 추가 정보가 추가됩니다.
환경 변수와 달리 소스 컨테이너를 다시 시작하면 수신 컨테이너의 /etc/hosts 정보가 자동으로 업데이트됩니다.
위 내용은 Mysql+Tomcat으로 Docker 다중 컨테이너 연결을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Docker 이미지를 업데이트하는 단계는 다음과 같습니다. 최신 이미지 태그 가져 오기 새 이미지 특정 태그의 이전 이미지 삭제 (선택 사항) 컨테이너를 다시 시작하십시오 (필요한 경우)

도커 컨테이너를 종료하는 4 가지 명령 사용 Docker Kill & lt; Container_name & gt; 호스트 터미널의 명령 (힘 출구)

Docker의 외부 호스트에 파일을 복사하는 방법 : Docker CP 명령 사용 : Docker CP 실행 [옵션] & lt; 컨테이너 경로 & gt; & lt; 호스트 경로 & gt;. 데이터 볼륨 사용 : 호스트에서 디렉토리를 만들고 -V 매개 변수를 사용하여 양방향 파일 동기화를 달성하기 위해 컨테이너를 만들 때 컨테이너에 디렉토리를 장착하십시오.

Docker 컨테이너를 다시 시작하는 방법 : 컨테이너 ID (Docker PS)를 가져옵니다. 컨테이너 중지 (Docker Stop & lt; container_id & gt;); 컨테이너를 시작하십시오 (Docker start & lt; container_id & gt;); 재시작이 성공했는지 확인하십시오 (Docker PS). 기타 방법 : Docker Compose (Docker-Compose Restart) 또는 Docker API (Docker 문서 참조).

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

도커 프로세스보기 방법 : 1. Docker CLI 명령 : Docker PS; 2. Systemd Cli 명령 : SystemCTL 상태 Docker; 3. Docker Compose CLI 명령 : Docker-Compose PS; 4. 프로세스 탐색기 (Windows); 5. /Proc Directory (Linux).

단계를 따르면 Docker 컨테이너 이름을 쿼리 할 수 있습니다. 모든 컨테이너 (Docker PS)를 나열하십시오. 컨테이너 목록을 필터링합니다 (GREP 명령 사용). 컨테이너 이름 ( "이름"열에 위치)을 가져옵니다.

Docker에서 MySQL을 시작하는 프로세스는 다음 단계로 구성됩니다. MySQL 이미지를 가져와 컨테이너를 작성하고 시작하고 루트 사용자 암호를 설정하고 포트 확인 연결을 매핑하고 데이터베이스를 작성하고 사용자는 데이터베이스에 모든 권한을 부여합니다.
