본문 바로가기
Dev/ETC

도커 실행시 타임존 동기화 및 생성 파일 권한

by nakanara 2020. 2. 6.
반응형

도커로 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/

 

Use volumes

Volumes are the preferred mechanism for persisting data generated by and used by Docker containers. While bind mounts are dependent on the directory structure of the host machine, volumes are...

docs.docker.com

https://docs.docker.com/engine/reference/run/

 

| Docker Documentation

Docker run reference Docker runs processes in isolated containers. A container is a process which runs on a host. The host may be local or remote. When an operator executes...

docs.docker.com

 

반응형

'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