• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

커스텀 이미지로 컨테이너 생성 시 실행이 안됩니다..

21.04.17 23:57 작성 조회수 212

0

모니터링 수업 부분에서 커스텀 이미지를 만들고 mydb 컨테이너 까지 만드는 것은 성공했습니다.

다음 수업에서 

groupadd -g 1002 mysql

useradd -u 1002 -r -g 1002 mysql

chown -R mysql:mysql /db/db001 /db/db002 /db/db003

한 다음 

docker run -i -t --name db001 -h db001 -p 3306:3306 \ --net mybridge --net-alias=db001 \ -v /db/db001/data:/var/lib/mysql \ -v /db/db001/log:/var/log/mysql \ -v /db/db001/conf:/etc/percona-server.conf.d \ -e MYSQL_ROOT_PASSWORD="root" -d mysql57:0.0

명령어 실행 후 컨테이너는 생성되는데 아무리해도 컨테이너가 실행이 안됩니다.

docker start db001 해도 안되고....

아래는 docker logs db001 내용입니다.

2021-04-17T15:00:55.631444Z 0 [ERROR] Could not open file '/var/log/mysql/mysqld.log' for error logging: Permission denied

2021-04-17T15:00:55.631489Z 0 [ERROR] Aborting

그룹과 유저를 생성할 때 기존에 1001이 있어서 1002로 해서 만들었습니다.

강의 내용과 다른 부분은 1002로 gid 를 바꾼거 말곤 없는데 어디서 잘못 되었는지 무엇을 찾아봐야 하는지 도와주세요... 

답변 3

·

답변을 작성해보세요.

0

안녕하세요.

에러 메세지 내용으로만 보면 docker host의 시간과 브라우저가 실행되는 로컬 pc의 시간이 달라서 생기는 에러 같은데요.

시간이 다른 한쪽의 시간을 맞춰주면 되지 않을 까 싶은데요.

리눅스에서의 시간변경은 검색하면 잘 정리된 내용을 찾아볼 수 있을 거 같습니다.

아래는 제가 찾아본 페이지인데요.

참고하셔서 시간을 한번 수정해 보시겠어요?

https://m.blog.naver.com/ree31206/221990548874

0

윌던님의 프로필

윌던

질문자

2021.04.18

강사님 답변을 받고 수정하여 컨테이너 생성 및 실행에 성공했습니다

prometheus 컨테이너 까지 실행해서 

브라우저에서 docker_host_ip:9090/graph 를 입력해서 잘 들어가지는데

Error fetching server time: Detected 332.1619999408722 seconds time difference between your browser and the server. Prometheus relies on accurate time and time drift might cause unexpected query results.

이렇게 에러가 나오네요...

검색에 up을 입력해서 결과를 보면 잘 나오는거 까지 확인이 되는데 위 에러메시지가 브라우저 접속하면 뜨는데

리눅스 서버 시간 설정을 해줘야 하나요?

리눅스와 도커 모두 완전 생 초보라서 어렵기만 하네요....

강의처럼 결과는 잘 나오고 있긴해서, 그냥 무시해도 되는 에러인지도 모르겠고...

자꾸 귀찮게 하는거 같아 죄송합니다.

0

안녕하세요.

Docker host에 mysql user를 생성할 때 uid와 gid를 1001로 만드는 이유는 컨테이너에서 생성되는 mysql user의 uid, gid와 동일하게 맞춰주기 위해서인데요.

Docker host의 uid, gid를 1002로 생성하려면 Docker custom image를 생성할 때 Dockerfile에 uid, gid 생성하는 부분에서도 마찬가지로 uid, gid를 1002로 변경해 주셔야 합니다.

Dockerfile에서 해당 부분을 수정하시고.

기존에 생성된 커스텀 이미지를 삭제히고 다시 생성하신 후에 컨테이너를 생성하시면 될 거 같습니다.

기존 이미지 삭제는 

# docker images 

mysql57 의 이미지 id 를 확인하시고, 아래 명령으로 삭제하시면 됩니다.

# docker rmi [image id]

윌던님의 프로필

윌던

질문자

2021.04.18

아... 그렇군요....

gid, uid 도 그냥 아무런 번호가 아니었군요...

Dockerfile을 자세히 안본 제 불찰입니다

Dockerfile을 확인해보니 RUN 부분에서 해당 부분을 확인했습니다

빠른 답변 정말 감사드립니다