MySQL 컨테이너에 문제가 있습니다. 컨테이너에 연결할 수 없습니다.
이것은 나의 docker-compose.yml
apache:
build: ./
ports:
- 1814:80
volumes:
- ./code:/app
links:
- db
environment:
- APACHE_SERVER_NAME=local.dev
- PHP_SHORT_OPEN_TAG=On
- PHP_ERROR_REPORTING=E_ALL
- PHP_DISPLAY_ERRORS=On
- PHP_HTML_ERRORS=On
db:
image: mysql:5.6
ports:
- "3333:3306"
volumes:
- /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: app
나는 docker-compose up -d --build
.
그 후 docker ps
실행중인 컨테이너를 사용 합니다.
https://i.imgsafe.org/3caf28c5f0.png
그런 다음 컨테이너 docker exec -it mddev_apache_1 /bin/bash
에서 대화 형 셸을 실행하는 데 사용 합니다 mddev_apache_1
.
하지만 MySQL에 연결하려고 할 때 거부되었습니다.
https://i.imgsafe.org/3ccfde1f73.png
MySQL 컨테이너에 연결할 수없는 이유는 무엇입니까?
감사.
================================================
다음으로 변경 docker-compose.yml
합니다.
version: '2'
services:
apache:
build: ./
container_name: web-server
ports:
- 1814:80
volumes:
- ./code:/app
links:
- db
environment:
- APACHE_SERVER_NAME=local.dev
- PHP_SHORT_OPEN_TAG=On
- PHP_ERROR_REPORTING=E_ALL
- PHP_DISPLAY_ERRORS=On
- PHP_HTML_ERRORS=On
networks:
report:
aliases:
- web-server
db:
image: mysql:5.6
container_name: database
ports:
- "3333:3306"
volumes:
- /var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
MYSQL_DATABASE: app
networks:
report:
aliases:
- database
networks:
report:
driver: bridge
하지만 여전히 MySQL 컨테이너에 연결할 수 없습니다.
http://i.imgsafe.org/4eb89f3857.png
내 네트워크와 컨테이너를 검사하려고합니다.
mddev_report
네트워크 검사 : http://i.imgsafe.org/4eae17a27f.png
web-server
컨테이너 검사 : http://i.imgsafe.org/4ec74e5d52.png
database
컨테이너 검사 : http://i.imgsafe.org/4ecb129d2d.png
mysql 컨테이너는 포트 3306 을 네트워크에 노출 하고 포트 3306을 호스트 3333 포트에 매핑합니다. 속성
을 사용할 때 ports
포트를 네트워크의 다른 컨테이너가 아닌 로컬 호스트에 매핑합니다.
web-server
컨테이너 내부에서 를 통해 mysql 서버에 연결할 mysql -uroot -padmin -h database -P 3306
수 있어야하며 호스트에서는 mysql -uroot -padmin -h localhost -P 3333
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다