我的主机系统是Arch Linux,Docker镜像是“base / arch”(archlinux),我自己进行了修改。 Unbound安装在已提交的映像上,但我不知道如何在服务运行时启动容器,因为SystemD不打算在Docker中运行。
如何使用Unbound作为服务运行来实际启动容器?
我已经阅读了一些基本教程,但其中大部分内容都包括启动预构建的容器:
谢谢!
答案 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