반응형
도커로 MariaDB를 실행하던 도중에 타임존이 현재 OS와 다르게 표시되었다.
컨테이너의 timezone이 달라서 발생하는 문제,
Volume를 이용하여 /etc/localtime을 이용하도록 수정,
(해당 내용은 Tomcat 등 모든 컨테이너에 동일하게 적용하였다.)
또한 컨테이너 외부에 데이터베이스 파일 및 로그 파일이 기록되도록 설정하였으나,
도커 내부의 권한으로 인해서 root로 접근하여 권한을 변경하는 등의 작업 후
파일을 접근 할수 있어서 -u 옵션을 통해서 해당 파일을 컨테이너를 실행한 시점에서의 UID, GID를 설정하여,
기록되도록 함.
단점은 컨테이너 내부에서 파일을 사용할 때 문제가 있을 수 있음.
docker run -dit \
--name sv_db \
--net=host \
-e MYSQL_ROOT_PASSWORD=rootroot \
-v /home/user/sv/mariadb_data:/var/lib/mysql \
-v /home/user/sv/conf/mariadb/conf.d:/etc/mysql/conf.d \
-v /home/user/sv/logs/mariadb:/var/log \
-v /etc/localtime:/etc/localtime:ro \
-e TZ=Asia/Seoul \
-u `stat -c "%u:%g" /home/user/sv/mariadb_data` \
-u `stat -c "%u:%g" /home/user/sv/logs/mariadb` \
docker.io/mariadb:10.3
참고
https://docs.docker.com/storage/volumes/
https://docs.docker.com/engine/reference/run/
반응형
'Dev > ETC' 카테고리의 다른 글
VIM 명령어 (0) | 2020.03.06 |
---|---|
Jenkins(Pipeline)를 이용한 DB 백업 (0) | 2020.02.17 |
CentOS 시스템 현황 명령어 (0) | 2020.02.03 |
Docker Container에서 외부 파일 생성시 권한 문제 (0) | 2019.12.18 |
톰캣 멀티 인스턴스 실행 (0) | 2019.12.16 |