작성
·
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
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
-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