【问题标题】:Docker Unbound DNS Server: How to launch as serviceDocker Unbound DNS 服务器:如何作为服务启动
【发布时间】:2017-03-06 13:46:57
【问题描述】:
【问题讨论】:
标签:
linux
docker
dns
server
archlinux
【解决方案1】:
对于这个答案,我假设您已通过 pacman 安装 community/unbound 软件包来安装 Unbound。
您可以检查与软件包一起安装的 systemd 单元文件,以确定如何实际启动服务器。看看/usr/lib/systemd/system/unbound.service:
[Unit]
Description=Unbound DNS Resolver
After=network.target
[Service]
ExecStartPre=/bin/cp -f /etc/trusted-key.key /etc/unbound/
PIDFile=/run/unbound.pid
ExecStart=/usr/bin/unbound -d
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
最重要的是ExecStart 行。这描述了 systemd 用于实际启动服务的命令。根据unbound 的帮助(unbound -h),-d 开关意味着不要进入后台(这是一件好事,因为这正是您开始 Unbound in 所需要的一个 Docker 容器)。
在构建映像时,ExecStartPre 命令可以是一个简单的RUN 步骤。
总之,你可以把它翻译成一个类似这样的 Dockerfile:
FROM base/arch
# <omitted>
RUN /bin/cp -f /etc/trusted-key.key /etc/unbound/
CMD ["/usr/bin/unbound", "-d"]