coc*_*mac 7 services systemd docker
我发现了这个问题,但那个问题使用了 cron - 我想改用 systemd 服务。我docker-compose.yml的在 中/home/me,我用 运行它sudo docker compose up(并用 让它在后台运行tmux),并用 停止它sudo docker compose down。
虽然功能正常,但我宁愿使用 systemd 服务来启动/停止我的docker-compose.yml文件。
如何将我的docker-compose.yml文件变成(工作的)systemd 服务?
我假设 docker-compose 文件位于/home/cocomac/docker-compose.yml,但您应该在我的示例中将其替换为 docker compose 文件的路径。
首先,让我们创建我们的服务文件。我个人喜欢micro文本编辑器,但可以随意使用其他编辑器。我将调用我的服务docker-compose.service,它将存储在/etc/systemd/system. 如果您愿意,可以随意使用不同的名称,但如果您这样做,请记住在遵循本答案的其余部分时使用该名称。
首先,让我们使用文本编辑器创建并打开文件:
$ micro /etc/systemd/system/docker-compose.service
Run Code Online (Sandbox Code Playgroud)
将以下内容放入文件中:
[Unit]
Description=Some personal Docker containers
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c "docker compose -f /home/cocomac/docker-compose.yml up --detach"
ExecStop=/bin/bash -c "docker compose -f /home/cocomac/docker-compose.yml stop"
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这为我们的服务提供了描述、启动+停止命令以及启动前需要运行的内容。请参阅此 Arch Wiki 页面,了解不同服务类型及其用途的说明RemainAfterExit。
保存文件并退出文本编辑器。您现在应该能够sudo systemctl start docker-compose启动新的 systemd 服务。创建容器时可能需要一些时间,但是一旦完成启动,您就可以sudo systemctl status docker-compose检查服务的状态。您还可以sudo systemctl stop docker-compose停止它(或sudo systemctl enable docker-compose在启动时自动启动它)
| 归档时间: |
|
| 查看次数: |
6648 次 |
| 最近记录: |