docker-time-sync-agent is a tool to prevent time drift in Docker for Mac's HyperKit VM.
APACHE-2.0 License
Note: Time drift issue is fixed in latest version of Docker for Mac. Please check https://github.com/docker/for-mac/issues/17.
docker-time-sync-agent
is a tool to prevent time drift in Docker for Mac's HyperKit VM.
Docker daemon fails to update the VM's time after computer wakes up from sleep. The result is that VM's clock will be set to a past time. This inturn will make Docker containers use that time.
So what's the problem if the container's use a wrong time ? Some services (like S3, Okta) will block requests orginating from a source whose time is wrong. Few examples:
403 Forbidden
docker-time-sync-agent
listens to system wakeup event and runs a shell script (update-docker-time
) that updates the VM's time. Time sync can be triggered manually anytime by running update-docker-time
.
Using launchd
, docker-time-sync-agent
can be made to autostart during login so that on every wakeup, time sync happens automatically.
curl https://raw.githubusercontent.com/arunvelsriram/docker-time-sync-agent/master/install.sh | bash
unzip Binaries-Vx.y.z.zip
mv /Binaries-Vx.y.z/docker-time-sync-agent /usr/local/bin/
mv /Binaries-Vx.y.z/update-docker-time /usr/local/bin/
mv /path/to/io.github.arunvelsriram.docker-time-sync-agent.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/io.github.arunvelsriram.docker-time-sync-agent.plist
Console.app
and ~/.docker-time-sync-agent.log
file to see the logsRun the following commands from your terminal:
launchctl unload ~/Library/LaunchAgents/io.github.arunvelsriram.docker-time-sync-agent.plist
rm -f ~/Library/LaunchAgents/io.github.arunvelsriram.docker-time-sync-agent.plist
rm -f /usr/local/bin/docker-time-sync-agent
rm -f /usr/local/bin/update-docker-time
rm -f ~/.docker-time-sync-agent.log
See CONTRIBUTING.md