首页 新闻 会员 周边

/etc/systemd/system/docker-tcp.socket重启失效问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-11-17 12:07

/etc/systemd/system/docker-tcp.socket中的配置如下:

[Unit]
Description=Docker Socket for the API [Socket] ListenStream=x.x.x.x:2375 BindIPv6Only=both Service=docker.service [Install] WantedBy=sockets.target

每次重启后都要运行下面的命令才生效:

systemctl enable docker-tcp.socket
systemctl stop docker
systemctl start docker-tcp.socket
systemctl start docker

请问如何解决这个问题? 

dudu的主页 dudu | 高人七级 | 园豆:31003
提问于:2017-10-30 20:25
< >
分享
最佳答案
2

参考 Starting Docker Daemon on Demand with Socket Activation ,在 [Unit] 中添加 PartOf=docker.service 解决了问题

PartOf 的作用(来源):

When systemd stops or restarts the units listed here, the action is propagated to this unit

dudu | 高人七级 |园豆:31003 | 2017-11-17 12:03
其他回答(1)
0

[Unit] 节点下还有别的标签可以帮你“自动化”

  • Description:简短描述
  • Documentation:文档地址
  • Requires:当前 Unit 依赖的其他 Unit,如果它们没有运行,当前 Unit 会启动失败
  • Wants:与当前 Unit 配合的其他 Unit,如果它们没有运行,当前 Unit 不会启动失败
  • BindsTo:与Requires类似,它指定的 Unit 如果退出,会导致当前 Unit 停止运行
  • Before:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之后启动
  • After:如果该字段指定的 Unit 也要启动,那么必须在当前 Unit 之前启动
  • Conflicts:这里指定的 Unit 不能与当前 Unit 同时运行
  • Condition...:当前 Unit 运行必须满足的条件,否则不会运行
  • Assert...:当前 Unit 运行必须满足的条件,否则会报启动失败

参考:

http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html 

https://blogs.mercenaryunion.com/2017/10/28/linux/linux-service/

收获园豆:50
路人路人 | 园豆:296 (菜鸟二级) | 2017-11-16 17:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册