[Docker] Container끼리 network 통신 : wordpress와 mysql

제이브로·2024년 2월 23일
0

Docker

목록 보기
40/48
post-thumbnail

1. Container network

--link를 통해 컨테이너 간 링크 연결하여 서비스를 작동하는 방법

  • wordpressmysql과 연계되는 서비스로 두 컨테이너를 연결해보겠습니다.

2. MySQL

MySQL:5.7 컨테이너 생성

  • mysql:5.7 컨테이너를 실행
  • -d 백그라운드 실행
  • --name 이름은 mysql
  • -v /dbdata:/var/lib/mysql : 호스트의 /dbdata 경로를 컨테이너 /var/lib/mysql 경로로 볼륨 지정
  • -e MYSQL_ROOT_PASSWORD=wordpress : ROOT 환경변수 비밀번호를 wordpress
  • -e MYSQL_PASSWORD=wordpress : 환경변수 비밀번호를 wordpress
docker run -d --name mysql -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7

MySQL이 exit 되는 오류 발생

  • 문제상황 : -v /dbdata:/var/lib/mysql 가 문제
  • 원인 : 호스트에 /dbdata가 존재해서 생기는 오류이다.
  • 해결방법1 : -v /var/lib/mysql로 마운트만 시켜줌
  • 해결방법2 : 호스트의 /dbdata 디렉토리 삭제

3. Wordpress

Wordpress:4 컨테이너 생성

docker run -d --name wordpress --link mysql:mysql -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:4
  • MySQL 버전 오류
    mysql:8 혹은 mysql:latest로 지정하니 다음과 같은 오류가 떴다.
Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in Standard input code on line 22
  • 확인해보니 환경변수 비밀번호 설정에 문제가 있었다.
  • mysql:5.7로 버전을 바꾸니 해결되었다.

4. References

  1. ttabae youtube
profile
기록하지 않으면 기록되지 않는다.

0개의 댓글