Docker for Mac의 컨테이너 시간 간격띄우기 처리 방법

1943 단어 dockerformacDocker

개요


Docker for Mac를 서버 용도 등으로 1일 이상 시작하면 컨테이너 내의 시간이 점차 오프셋됩니다.
자신의 환경 조건과 다른 것을 많이 검색했기 때문에 Docker for Mac에 대한 동기를 만들어 봤습니다.

컨디션


OS: Mac OS Sierra 10.12.3
Docker for Mac: 1.13.0

절차.


1 터미널을 열고 다음 동작을 수행합니다
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
2 빈 터미널을 시작하고 다음 명령을 실행합니다
hwclock -s
나는 이렇게 용기 안의 시간과 호스트의 맥 OS의 시간이 동기화되고 있다고 생각한다.

단계 내용


컨테이너 수준


정부측의에 다음과 같은 내용이 기재되어 있다
Docker for Mac does not use VirtualBox, but rather HyperKit, a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.
Docker for Mac에서는 HyperKit라는 가상화 솔루션을 사용하여 Alpine Linux 기반 가상 환경을 구축한 다음 Docker 컨테이너를 위에 놓습니다.

시간 이 엇갈린 원인


원래 Docker는 호스트의 시간을 참조하기 때문에 시간을 놓치지 않지만, 위에서 말한 바와 같이 HyperKit의 가상 OS가 Docker 용기의 호스트가 되면 호스트의 시간이 엇갈리기 때문에 컨테이너의 시간도 엇갈린다.

HyperKit의 시간을 하드웨어 클록과 동기화


1단계.에서 HyperKit에서 Linux에 액세스하려면 2단계를 수행합니다.에서 하드웨어 시계와 시스템 시계가 동기화됩니다.
하드웨어 시계는 문자와 같이 맥의 하드웨어로 그려진 시계로 호스트는 NTP로 적당한 시간을 하드웨어 시계에 반영하고 하드웨어 시계를 하이퍼키트의 리눅스에 반영함으로써 이 시계를 참조하는 용기의 시간 동기화를 실현한다.
(2017/05/28 보충)
Docker for Mac vs. Docker Toolbox
왜냐하면 HyperKit에 있는 Linux에 cron이 있어요.
crontab -e
스케줄링을 진행하면 하드웨어 시계와 정기적으로 동기화할 수 있다.

인용하다



How to access the VM created by docker's HyperKit?

좋은 웹페이지 즐겨찾기