티스토리 뷰
이번시간에는 도커를 실행할 때 발생하는 에러들과 해결법을 알아보겠다. 모든 코드와 설명은 해당 블로그를 참고했다. 블로그가 2017년에 작성된것이라 아무래도 오류가 많았다.
M1 맥에서 mysql 이미지 다운로드 및 실행
블로그에서의 명령어는 다음과 같다.
docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true --name mysql mysql:5.7
하지만 에러가 뜬다. 검색해보니 Apple 실리콘이 탑재된 컴퓨터에서는 옵션을 붙여주어야 한다고 한다. 옵션 명령어는 다음과 같다.
--platform linux/amd64
따라서 아래 명령어를 입력하면 정상적으로 실행이 될 것이다. 이름 옵션에서는 자신이 원하는 이름을 지어주어도 상관없다.
docker run --platform linux/amd64 -d -p 3306:3306 -e MYSQL_PASSWORD=root --name mysql_container mysql
이미 사용중인 포트
위 명령어를 입력하면 아래와 같은 문구가 뜰 것이다.
docker: Error response from daemon: Ports are not available:
exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306:
bind: address already in use.
하지만 작동은 정상적으로 되는 것 같다.. 혹시 몰라 모든 컨테이너를 삭제했다. 모든 컨테이너를 삭제하는 명령어는 다음과 같다.
docker rm -f $(docker ps -aq)
그래도 같은 에러가 뜬다. 이 에러는 나중에 다시 살펴봐야겠다.
워드프레스 실행
블로그에서 아래 명령어를 실행하라고 했다. 하지만 아래 구문이 뭘 뜻하는지 몰랐다. 워드프레스를 만져본 적도 처음이고 도커도 처음이었기 때문이다. 그래서 찾아보았더니 아래 명령어를 입력함으로써 워드프레스 컨테이너가 우리가 만든 wp 데이터베이스의 정보를 알 수 있게 하는 명령어라고 한다.
grant all privileges on wp.* to wp@'%' identified 'wp';
실행했더니 에러가 났다.
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near 'identified 'wp'' at line 1
친절하게 identified 'wp' 에서 오류가 났다고 말을 해준다. 워드프레스를 실행하기 위해선 먼저 User를 생성해주어야 한다. User를 생성하는 명령어는 다음과 같다.
create User wp@'%' identified by 'root 비밀번호';
User를 만들고 다시 컨테이너를 생성하려고 하면 에러가 뜰 것이다. mysql 8버전 이후 워드프레스를 생성하는 명령어가 바뀌었다. 바뀐 명령어는 다음과 같다.
grant all privileges on wp.* to wp@'%';
'Docker' 카테고리의 다른 글
Docker Compose의 편리함을 알아보자 (0) | 2022.10.25 |
---|---|
도커 설치와 간단하게 실행해보기 (0) | 2022.10.21 |
도커의 탄생배경과 동작원리 (0) | 2022.07.08 |
- Total
- Today
- Yesterday