도커에 워드프레스(작성 없음)
이것은 나의 docker-compose.yml 입니다.
version: '2'
services:
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_PASSWORD: example
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
서비스는 정상적으로 실행되지만 몇 초 후 워드프레스 컨테이너가 중지됩니다.
이것은 내 도커 로그 워드프레스 컨테이너입니다.
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 10
왜 이런 일이 일어날까요?
솔루션:
mysql 컨테이너를 워드프레스 컨테이너에 링크하는 것을 잊지 마십시오.
links:
- db:mysql
다음과 같이 합니다.
version: '2'
services:
wordpress:
image: wordpress
ports:
- "8080:80"
links:
- db:mysql
environment:
WORDPRESS_DB_PASSWORD: example
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
WordPress 이미지 공식 Dockerhub 페이지에는 이 중요한 세부 정보가 없습니다.
이 anwser는 나에게 효과가 있습니다.그 anwser에 투표할 만한 평판이 없었기 때문에, 여기에 카피합니다.
depends_on:
- db
그러면 데이터베이스 컨테이너가 완전히 로드된 후wordpress
컨테이너.도커에게 링크하도록 지시해야 합니다.db
로부터의 컨테이너wordpress
컨테이너를 사용하여 이름으로 참조합니다.
뭐?docker-compose
ip docker가 제공하는 ip docker는 후드 아래에 있습니다.db
컨테이너 및 추가/etc/hosts
에의 엔트리wordpress
이름으로 참조할 수 있도록 컨테이너를 지정합니다.
워드프레스 섹션에 추가해 보십시오.
links:
- db
DB 호스트(및 기타 필요한 MySql 속성)를 작성 파일 워드프레스 서비스(패스워드가 아닌 게시물에 표시됨)에서 설정하고 있습니까?예:
environment:
WORDPRESS_DB_PASSWORD: example
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: {xxx}
WORDPRESS_DB_NAME: {xxx}
WORDPRESS_TABLE_PREFIX: {xxx}
특히 "host" 값은 다음과 같습니다.db
. 링크를 할 필요는 없습니다.단, 추가하는 것이 좋습니다.
depends_on:
- db
wordpress 서비스 블록으로 이동합니다. 그러면 wordpress 컨테이너보다 먼저 DB 컨테이너를 시작하는 종속 순서가 설정됩니다.(A)links
Atribute도 같은 동작을 합니다만, 심플한 상태를 유지하려고 합니다).
주의:
기본적으로 Compose(작성)는 앱에 대해 단일 네트워크를 설정합니다.서비스의 각 컨테이너는 기본 네트워크에 가입하여 해당 네트워크상의 다른 컨테이너에 의해 도달 가능하며 컨테이너 이름과 동일한 호스트 이름으로 이들 컨테이너에 의해 검출될 수 있습니다.
링크를 사용하면 다른 서비스에서 서비스에 도달할 수 있는 추가 에일리어스를 정의할 수 있습니다.이러한 서비스는 서비스가 통신할 수 있도록 하기 위해 필요하지 않습니다.기본적으로는 어떤 서비스도 해당 서비스의 이름으로 다른 서비스에 도달할 수 있습니다.
대부분의 경우 디폴트로는 정상적으로 동작하기 때문에, 실제로 무엇을 하고 있는지 이해하지 않는 한, 네트워크를 조작하지 않습니다.특별한 케이스가 있는 경우 나중에 언제든지 최적화할 수 있습니다.
'db:' 아래에 이러한 항목을 추가하면 문제가 해결되었습니다.
command: --default-authentication-plugin=mysql_native_password
restart: always
yml을 사용하지 않았지만 로그가 동일하여 동작하지 않았습니다.
docker run -dP --link elated_yonath -e WORDPRESS_DB_USER=libik -e WORDPRESS_DB_PASSWORD=prdik wordpress
그런데 링크된 컨테이너에 :mysql을 추가해야 합니다.
docker run -dP --link elated_yonath:mysql -e WORDPRESS_DB_USER=libik -e WORDPRESS_DB_PASSWORD=prdik wordpress
이제 시작이다.
앞서 말한 바와 같이,
depends_on:
- db
하지만 이렇게 된 후에도 여전히 연결 장애에 대한 메시지가 나타납니다.그리고 이 분명한 문제만 - 두 번째 옵션:
networks:
local:
이 해결 오류 PHP 경고: mysqli::_facebook(): php_network_getaddresses: getaddrinfo가 실패했습니다. 22행의 표준 입력 코드에서 이름 해결이 일시적으로 실패했습니다.
언급URL : https://stackoverflow.com/questions/38407117/wordpress-on-docker-compose-no-run
'programing' 카테고리의 다른 글
플러그인 시스템 구조(wordpress, mybb...) (0) | 2023.02.28 |
---|---|
1 컬렉션 mongodump 사용방법 (0) | 2023.02.28 |
Angular.js가 프로그래밍 방식으로 양식 필드를 더티로 설정합니다. (0) | 2023.02.28 |
goBack()이 라우터 v4에 응답하기 전에 이전 위치를 확인합니다. (0) | 2023.02.28 |
Google Instant는 어떻게 작동합니까? (0) | 2023.02.28 |