Docker Unbound DNS Server:如何作为服务启动

时间:2016-10-24 17:34:01

标签: linux docker dns server archlinux

我的主机系统是Arch Linux,Docker镜像是“base / arch”(archlinux),我自己进行了修改。 Unbound安装在已提交的映像上,但我不知道如何在服务运行时启动容器,因为SystemD不打算在Docker中运行。

如何使用Unbound作为服务运行来实际启动容器?

我已经阅读了一些基本教程,但其中大部分内容都包括启动预构建的容器:

Dockers basic course.

Arch Wiki.

Digital Ocean overview.

谢谢!

1 个答案:

答案 0 :(得分:2)

对于这个答案,我假设您已经通过 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用于实际启动服务的命令。根据{{​​1}}的帮助(unbound),unbound -h切换意味着不会分叉到后台(这是一件好事,因为& #39; s正是你需要在Docker容器中启动Unbound所需的。)

构建图像时,-d命令可以是一个简单的ExecStartPre步骤。

总之,您可以将其转换为类似于此的Dockerfile:

RUN