Cron
ubuntu 16.04 的 docker 映像中缺少 cron 和 crontab
這是我的 Dockerfile
FROM ubuntu:16.04 RUN apt-get update -y && apt-get install -y \ git \ python \ python-pip
創建 docker 映像後,我登錄並嘗試設置一個 cron 作業進行測試。令我驚訝的是,
cron
並crontab
沒有出現。# ls app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # crontab -l /bin/sh: 6: crontab: not found # crontab -l /bin/sh: 7: crontab: not found # crontab -l /bin/sh: 10: crontab: not found # cron /bin/sh: 11: cron: not found
但我希望
cron
出現在 ubuntu 圖像中。我是否選擇了錯誤的圖像或者我需要做些什麼來啟用cron
?
鏡像ubuntu:16.04中預設不安裝cron命令
需要跑
apt-get install cron
Docker 鏡像在設計上是最小的,它們用於創建容器,而不是完整的作業系統。容器隔離應用程序的執行,因此預設情況下,它不會在該環境中執行所有其他作業系統守護程序,如 cron、syslog、郵件等。
您可以使用以下命令安裝 cron:
RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install \ cron \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
在你的 Dockerfile 中。但是,要執行 crontab 條目,您還需要在容器啟動過程中啟動 cron 守護程序。您可以使用諸如 forego 和 supervisord 之類的工具在容器中執行多個程序(cron 加上您的應用程序),但這樣做通常是反模式的標誌。