나는 맥 OS 시에라, 즉 web
, mysql
및 mongo
에서 실행 세 도커 용기를 가지고 있고, 아파치, 기본적으로 우분투 Xenail 기지 web
에 모두 mongo
및 mysql
을 연결 한 그리고 PHP가 추가되었습니다.심포니는 MySQL의 부두 노동자 컨테이너에 연결할 수
저는 현재 web
용기에 내 로컬 심포니 프로젝트를 장착하고, 그것은 잘 동작하는 것,하지만 난 어떤 방법으로 DB와 상호 작용 할 때, 내가 얻을 : 예외가 발생
을 거부하지만, 같은 결과를 점점 계속.드라이버 : SQLSTATE는 [HY000] [2002] 연결 내가 매개 변수 값의 거의 모든 조합을 시도했습니다
컨테이너를 연결하는 방식과 관련이 있다고 생각합니까?
나는 Docker를 배우는 중이므로 제 제한된 지식을 용서하십시오.
감사합니다.
웹 dockerfile :
FROM ubuntu:xenial
MAINTAINER Some Guy <[email protected]>
RUN apt-get update && apt-get install -y \
apache2 \
vim \
php \
php-common \
php-cli \
php-curl \
php-mysql \
php-mongodb \
libapache2-mod-php \
php-gd
RUN mkdir -p /var/www/symfony.local/public_html
RUN chown -R $USER:$USER /var/www/symfony.local/public_html
RUN chmod -R 755 /var/www
COPY config/php/php.ini /usr/local/etc/php/
COPY config/apache/sites-available/*.conf /etc/apache2/sites-available/
RUN a2enmod rewrite
RUN a2dissite 000-default.conf
RUN a2ensite symfony.local.conf
EXPOSE 80
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
의 MySQL dockerfile :
FROM mysql:5.7
MAINTAINER Some Guy <[email protected]>
# Set the root users password
ENV MYSQL_ROOT_PASSWORD password
# Copy over the DB dump to be run upon creation
COPY sql/ /docker-entrypoint-initdb.d
# Copy over the custom mysql config file
COPY config/ /etc/mysql/conf.d
EXPOSE 3306
실행 명령 :
docker run --name mongo -d mongo #Im making use of the official Mongo image
docker run --name mysql -v /usr/local/var/mysql:/var/lib/mysql -d someguy/local:mysql
docker run --name web -d -p 80:80 --link mysql:mysql --link mongo:mongo -v ~/Sites/symfony.local/:/var/www/symfony.local/public_html/ someguy/local:web
심포니의 parameters.yml 파일 :
parameters:
database_host: mysql
database_port: 3306
database_name: gorilla
database_user: root
database_password: password
UPDATE :
그래서 나는 docker-compose
을 사용하는 동안 이동했지만 여전히 같은 오류가 발생하고있다.
이 고정 표시기-compose.yml 파일
version: "2"
services:
web:
build: ./web
ports:
- "80:80"
volumes:
- ~/Sites/symfony.local/:/var/www/symfony.local/public_html/
depends_on:
- db
- mongo
mongo:
image: mongo:latest
mysql:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
이것은 Docker 자체와는 거의 관계가 없습니다. MySQL에서 원격 액세스를 어떻게 구성 했습니까? – mustaccio
잘 모르겠다. 공식 MySQL 이미지를 확장하고'sql_mode'를 설정했다. 이미지가 웹 컨테이너에 직접 링크되어 있어도 원격 액세스를 구성해야합니까? – Odyss3us
이 Docker가 "연결 중"이라고 혼동하지 마세요. 각 컨테이너는 Docker 네트워크의 호스트로 간주됩니다. Docker 네트워킹 (및 MySQL 원격 액세스 구성)을 읽으십시오. – mustaccio