亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker.service啟動(dòng)失?。篣nit not found的原因及解決辦法

 更新時(shí)間:2017年04月20日 14:27:42   投稿:mrr  
這篇文章主要介紹了docker.service啟動(dòng)失?。篣nit not found的原因分析及解決辦法,需要的朋友可以參考下

背景

因?yàn)樽罱恢痹谡垓vKubernetes集群版本升級(jí)、Docker版本升級(jí),所以不停的把測(cè)試環(huán)境安裝、還原、升級(jí)、降級(jí),簡(jiǎn)直亂的不行。終于,在測(cè)試Docker版本升級(jí)后,啟動(dòng)Docker時(shí),遇到了docker.service: Unit not found。問(wèn)題雖然不大,但是卻折磨了我?guī)讉€(gè)小時(shí),所以在此mark一下。

操作系統(tǒng):Red Hat Enterprise Linux 7

原因1:docker.socket

最初在啟動(dòng)docker時(shí)遇到問(wèn)題,是因?yàn)閐ocker.socket引起的,雖然記不清問(wèn)題是表現(xiàn)為Unit not found還是執(zhí)行systemctl start docker.service命令時(shí)hang住了,但是也一并記錄在這里。

問(wèn)題描述

我是從Docker 1.10.3升級(jí)到1.13.1版本,通過(guò)rpm包安裝的。由于要保留自定義的一些Docker配置,所以在升級(jí)后,使用原來(lái)的/usr/lib/systemd/system/docker.service覆蓋了新的docker.service。但是在1.10.3版本中,docker.service的[UNIT]里規(guī)定了Requires=docker.socket,也就是說(shuō),docker.service默認(rèn)依賴于docker.socket,因?yàn)樾枰褂胐ocker.socket來(lái)獲取容器的信息。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket

但是在1.13.1版本中,已經(jīng)不再依賴于docker.socket了,所以系統(tǒng)里沒(méi)有docker.socket,而我繼續(xù)使用原來(lái)的docker.service,所以在啟動(dòng)的時(shí)候,就會(huì)出錯(cuò)。

解決辦法

刪除/usr/lib/systemd/system/docker.service的[UNIT]里包含的docker.socket,然后systemctl daemon-reload,最后systemctl start docker.service,發(fā)現(xiàn)啟動(dòng)成功了。

類似情況

如果是類似的情況,缺少docker.socket,但是新版本需要docker.socket。有兩種方法可以解決該問(wèn)題:

  • 可以卸載docker,再重新安裝,即可出現(xiàn)docker.socket?;蛘?/li>
  • 創(chuàng)建一個(gè)/usr/lib/systemd/system/docker.socket文件,然后systemctl daemon-reload,最后systemctl start docker.service,即可啟動(dòng)成功。

/usr/lib/systemd/system/docker.socket文件如下:

[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target

原因2:flanneld.service

就如背景里描述的,我恰好在這臺(tái)出問(wèn)題的機(jī)器上,安裝過(guò)Kubernetes,以及flannel,然后又刪掉了我之前以為的“所有”相關(guān)的文件。正是由于flannel的文件沒(méi)有刪除干凈,導(dǎo)致出現(xiàn)了docker.service: Unit not found的問(wèn)題。

問(wèn)題描述

在確定不是因?yàn)閐ocker.socket的問(wèn)題導(dǎo)致的之后,我第一反應(yīng)就是刪除flannel導(dǎo)致的,因?yàn)槲伊私鈌lanneld.service與docker.service直接是有啟動(dòng)順序的關(guān)聯(lián)的:

[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

真正困擾了我很久的是,/usr/lib/systemd/system/flanneld.service我已經(jīng)刪除了,也systemctl daemon-reload了,究竟還有哪個(gè)文件漏刪了。

經(jīng)過(guò)檢查,/etc/systemd/system/flanneld.service依然存在,并且存在/etc/systemd/system/docker.service.requires目錄,在該目錄下包含了軟連接flanneld.service,該軟鏈接指向了真正的flanneld.service,從而實(shí)現(xiàn)了兩個(gè)服務(wù)的啟動(dòng)順序的關(guān)聯(lián)。

定位該類問(wèn)題,經(jīng)常會(huì)用到的命令有:

  • systemctl list-unit-files 列出所有可用的Unit
  • systemctl list-units 列出所有正在運(yùn)行的Unit
  • systemctl --failed 列出所有失敗單元
  • systemctl mask httpd.service 禁用服務(wù)
  • systemctl unmask httpd.service
  • systemctl kill httpd 殺死服務(wù)
  • systemd-analyze critical-chain:分析啟動(dòng)時(shí)的關(guān)鍵鏈
  • systemd-analyze blame 分析啟動(dòng)時(shí)各個(gè)進(jìn)程花費(fèi)的時(shí)間

解決辦法

使用systemctl unmask flanneld.service禁止flanneld服務(wù),然后刪除
/etc/systemd/system/docker.service.requires/flanneld.service,使用systemctl daemon-reload重新加載服務(wù)配置文件,最后systemctl start docker.service,發(fā)現(xiàn)docker啟動(dòng)成功了。

以上所述是小編給大家介紹的docker.service啟動(dòng)失?。篣nit not found的原因分析及解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • docker-compose部署MySQL8的實(shí)現(xiàn)

    docker-compose部署MySQL8的實(shí)現(xiàn)

    本文主要介紹了docker-compose部署MySQL8的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 一文講解如何查看一個(gè)docker鏡像有哪些版本

    一文講解如何查看一個(gè)docker鏡像有哪些版本

    這篇文章主要給大家介紹了關(guān)于如何查看一個(gè)docker鏡像有哪些版本的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用docker具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-04-04
  • Docker?安裝Nginx與配置Nginx的案例

    Docker?安裝Nginx與配置Nginx的案例

    Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,ginx是一款輕量級(jí)的Web?服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like?協(xié)議下發(fā)行,下面通過(guò)本文給大家介紹Docker?安裝Nginx與配置Nginx的案例,感興趣的朋友一起看看吧
    2024-08-08
  • 簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目

    簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目

    這篇文章主要介紹了簡(jiǎn)述Docker安裝Tomcat鏡像并部署web項(xiàng)目,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 阿里云ECS部署Docker服務(wù)的實(shí)現(xiàn)步驟

    阿里云ECS部署Docker服務(wù)的實(shí)現(xiàn)步驟

    本文主要介紹了阿里云ECS部署Docker服務(wù)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Docker 容器日志分析

    Docker 容器日志分析

    這篇文章主要介紹了Docker 容器日志分析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程

    Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程

    這篇文章主要介紹了Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問(wèn)題小結(jié))

    Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑(問(wèn)題小結(jié))

    這篇文章主要介紹了Docker安裝阿里云服務(wù)器和在虛擬機(jī)安裝遇到的坑,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • docker容器啟用ipv6地址的方法流程

    docker容器啟用ipv6地址的方法流程

    Docker默認(rèn)不開(kāi)啟IPv6配置,某些場(chǎng)景我們又需要IPv6網(wǎng)絡(luò)支持,隨著IPv6的普及,以后的使用場(chǎng)景會(huì)越來(lái)越多,所以本文給大家介紹了docker容器啟用ipv6地址方法,用ipv6地址訪問(wèn)容器方法流程、創(chuàng)建一個(gè)nginx容器用ipv6地址訪問(wèn)測(cè)試流程,需要的朋友可以參考下
    2024-08-08
  • docker nginx 運(yùn)行后無(wú)法訪問(wèn)的問(wèn)題解決

    docker nginx 運(yùn)行后無(wú)法訪問(wèn)的問(wèn)題解決

    這篇文章主要介紹了docker nginx 運(yùn)行后無(wú)法訪問(wèn)的問(wèn)題解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論