我是 docker 新手,我想用 Ubuntu 20.04 和 bind9 服務安裝構建一個映像。
下面是我的 docker 檔案代碼
FROM ubuntu:20.04
ENV TZ=Asia
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update && apt-get install -y \
apt-utils \
systemctl \
bind9
RUN /usr/sbin/named -g -c /etc/bind/named.conf -u bind
RUN systemctl restart bind9
我收到如下錯誤
ERROR:systemctl:Unit bind9.service could not be found.
任何人都可以幫助我,在安裝 Bind9 后,為什么我在使用上述命令時出現錯誤?
錯誤僅隨 Docker 一起出現,如果我在 Ubuntu 20.04 的主機環境中運行相同的命令,則它可以正常作業。
uj5u.com熱心網友回復:
您通常不能在容器中使用服務管理命令(如service或systemctl等),因為沒有運行服務管理器。
此外,即使是服務管理器運行時,它不會作出任何意義在與它互動RUN命令:這些命令是影像生成程序的一部分,并有在這一點上運行沒有持續的服務。甲RUN在隔離環境中的命令運行,它是完全向下當撕開RUN命令完成。
如果要bind在使用映像運行容器時啟動,則需要將適當的bind命令列放入CMD選項中。比如官方的bind9鏡像包括:
CMD ["/usr/sbin/named", "-g", "-c", "/etc/bind/named.conf", "-u", "bind"]
(有關詳細資訊,請參閱Dockerfile)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331208.html
上一篇:在shell腳本中呼叫鏈碼函式
