--link
를 통해 컨테이너 간 링크 연결하여 서비스를 작동하는 방법
wordpress
는 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
디렉토리 삭제
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
로 버전을 바꾸니 해결되었다.