인프런 커뮤니티 질문&답변

윌던님의 프로필 이미지
윌던

작성한 질문수

초보를 위한 도커 안내서

워드프레스와 mysql

작성

·

403

1

안녕하세요 

강의가 너무 좋으신데 중간 실습 과정에서 안되는 부분이 있어서 여쭤봅니다.

아무래도 환경 차이인거 같은데...

저는 centos 8 환경에서 docker를 설치해서 실습중입니다.

도커 명령어 강의중에서 mysql 컨테이너를 실행중에 wordpress 컨테이너를 실행하니 아래의 에러가 뜹니다

MySQL Connection Error: (2002) No route to host

wordpress 컨테이너 생성시 WORDPRESS_DB_HOST= 환경변수 값을 ifconfig 해서 찾은 ip를 기입했는데도 안되네요...

무엇이 문제일까요...

centos는 또 다른 설정 방법이 있는건가요??

답변 5

1

윌던님의 프로필 이미지
윌던
질문자

Mysql 생성

[leejongwoo@localhost docker_test]$ docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7

3e8dbda83b988f16331bd1c09f75e13c0d4cc31459503bd170bfd1752d94f09a

[leejongwoo@localhost docker_test]$ docker exec -it mysql mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.32 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database wp CHARACTER SET utf8;

Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on wp.* to wp@'%' IDENTIFIED by 'wp';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

-------------------------------------------------------------------------------------------------------------------

wordpress 생성

[leejongwoo@localhost docker_test]$ docker run -d -p 8080:80 -e WORDPRESS_DB_HOST=172.17.0.2:mysql -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp --name wp wordpress

056e4c106f40c79565a58f070e7fa189acf169bcbff3d683b813af76ceaf7c8b

-------------------------------------------------------------------------------------------------------------------

wordpress 로그

[leejongwoo@localhost docker_test]$ docker logs wp

WordPress not found in /var/www/html - copying now...

Complete! WordPress has been successfully copied to /var/www/html

[09-Jan-2021 15:05:35 UTC] PHP Warning:  mysqli::__construct(): (HY000/2002): No route to host in Standard input code on line 22

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

MySQL Connection Error: (2002) No route to host

어디에서 잘못되었는지 모르겠네요.
위의 명령어 말고도 강의에서 나온 docker-compose up 명령어를 해도 같은 에러가 나옵니다...ㅜㅜ

0

subicura님의 프로필 이미지
subicura
지식공유자

centos 방화벽 이슈가 있었군요.. ㅠㅠ 해결되서 다행입니다!

저도 잘 부탁드립니다! 감사합니다. :)

0

윌던님의 프로필 이미지
윌던
질문자

와~~~문제해결했습니다...ㅠㅠ

centos8에서 방화벽 관련 문제인거 같은데 리눅스를 잘 몰라서 정확한 이유는 모르겠지만

주석에 보니 172로 시작하는 IP는 전부 열어주라는 의미 같은데 네트워크를 두개를 써서 그런거 같습니다.

아래의 명령어를 순서대로 입력하니 되네요...

------------------------------

# open all IPs starts with "172" so that all the containers may communicate each other

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=172.0.0.0/8 accept'

# make our container able to visit the network outside

sudo firewall-cmd --permanent --zone=public --add-masquerade

# apply the change

sudo firewall-cmd --reload

------------------------------

https://stackoverflow.com/questions/40214617/docker-no-route-to-host

이렇게 또 하나 배워가네요...

강사님 빠른 답변 감사합니다^^ 좋은 강의 잘 듣고 있고 이번 강의 다 닫고 쿠버네티스 강의도 수강 예정입니다.

계속 잘 부탁 드릴게요^^

0

subicura님의 프로필 이미지
subicura
지식공유자

 -e WORDPRESS_DB_HOST=172.17.0.2:mysql 이 부분을 

 -e WORDPRESS_DB_HOST=172.17.0.2 이렇게 변경해 보시겠어요?

wordpress 로그를 보면 mysql host(아이피 또는 도메인 주소)가 잘못되었다고 나오는것으로 보아 wordpress에서 설정한 WORDPRESS_DB_HOST 이 부분이 문제인 것으로 보입니다.

확인해보시고 잘 안되면 문의주세요!

0

subicura님의 프로필 이미지
subicura
지식공유자

안녕하세요!

docker ps 명령어 결과와 wordpress 실행하신 전체 docker run 명령어를 알려주시겠어요?

확인해보고 말씀드리겠습니다!

윌던님의 프로필 이미지
윌던

작성한 질문수

질문하기