1. 程式人生 > >如何在docker容器內使用systemctl

如何在docker容器內使用systemctl

docker版本:

[root@localhost gae_proxy]# docker version
Client:
 Version:         1.10.3
 API version:     1.22
 Package version: docker-common-1.10.3-46.el7.centos.10.x86_64
 Go version:      go1.6.3
 Git commit:      d381c64-unsupported
 Built:           Thu Aug  4 13:21:17 2016
 OS/Arch:         linux/amd64

Server:
 Version:         1.10
.3 API version: 1.22 Package version: docker-common-1.10.3-46.el7.centos.10.x86_64 Go version: go1.6.3 Git commit: d381c64-unsupported Built: Thu Aug 4 13:21:17 2016 OS/Arch: linux/amd64
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

映象版本

[root@b2ca5610d3da /]# cat /etc/redhat-release
CentOS Linux
release 7.2.1511 (Core)
  • 1
  • 2
    在docker中通過systemctl 啟動服務的時候總是報Failed to get D-Bus connection: Operation not permitted 這樣的錯誤提示。
  • 1
  • 2
[[email protected] ~]# systemctl start sshd
Failed to get D-Bus connection: Operation not permitted
  • 1
  • 2
    解決辦法就是在docker run 的時候執行/usr/sbin/init 。比如:
  • 1
  • 2
[root@localhost /]# docker run -tid --name hadoopbase centos/hadoopbase:v001 /usr/sbin/init
  • 1
    這樣執行起來的container就可以使用systemctl來啟動服務了,有的人說在CentOS7.2中解決了通過systemctl執行報錯的問題,但是我在實際操作中還是遇到這樣的問題。
    還有一種解決辦法,就是在通過Dockerfile生成映象檔案的時候,通過CMD來執行/usr/sbin/init這條命令,即:CMD [ "/usr/sbin/init"];
  • 1
  • 2
  • 3

相關推薦

如何在docker容器使用systemctl

docker版本:[root@localhost gae_proxy]# docker version Client: Version: 1.10.3 API version: 1.22 Package version: docker-commo

Docker容器多進程管理(草稿)

Docker容器內多進程管理傳統環境下同時運行多個進程非常簡單,系統初始化啟動一個init或者systemctl進程,其余的進程都由它來管理。在容器環境下沒有init進程,啟動一個Docker容器,只能讓它運行一個前臺程序。那麽有辦法解決這個問題嗎?目前主要有兩個工具,一個是Supervisor,另一個是Mo

Monit實現Docker容器多進程管理(二)

doc Superviso ali 解決 重點 back 執行 break 管理後臺 Monit和Supervisor還是有很大區別的,Supervisor管理的都是前臺執行的進程,Monit既可以管理前臺進程也可以管理後臺進程,簡單的說,在CentOS中使用service

監控docker容器mysql主從同步狀態

使用 bin con -i ner 獲取 face ont stdin Docker exec 命令docker exec :在運行的容器中執行命令語法docker exec [OPTIONS] CONTAINER COMMAND [ARG...]OPTIONS說明:-d

Docker容器網通過獨立IP直接訪問的方法

地址 9.png 自己 圖片 eight borde log margin 宿主機 Docker官方推薦我們通過端口映射的方式把Docker容器的服務提供給宿主機或者局域網其他容器使用。一般過程是: 1、Docker進程通過監聽宿主機的某個端口,將該端口的數據包發送給Doc

進入docker 容器命令

docker exec :在執行的容器中執行命令 語法 docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS說明: -d :分離模式: 在後臺執行 -i :即使沒有附加也保持STDIN 開啟 -t :分配一個偽終端

Docker 容器新增資料卷的2種方式

文章目錄 1、容器資料卷是什麼? 2、`容器內` 新增資料卷的2種方式 3、直接命令新增 3.1、命令 3.2、檢視資料卷是否掛載成功 3.3、容器和宿主機之間資料共享 3.3、容器停止退出後,主機修改後資料是否同步

解決docker容器時間不同步問題

先說簡單合理的: 建立容器的時候指定啟動引數,自動掛載localtime檔案到容器內 例如 docker run --name niub -v /etc/localtime:/etc/localtime:ro -d -p 13000:3000 niuhome3 /sbin

Docker容器多程序管理(二)——monit

注:本文基於CentOS 6.6 背景 上一篇我們介紹了使用supervisor來管理容器內的多程序,但是我們注意到supervisor只能管理到前臺程序,對於一般的服務,沒有終端的程序supervisor無法管理。這就需要請出我們的monit了,相對於supe

解決docker 容器訪問宿主機“No route to host”的問題

解決docker 容器內訪問宿主機“No route to host”的問題   請順序執行以下命令: 1 nmcli connection modify docker0 connection.zone trusted 2 3 systemctl stop NetworkManager

Flume Kafka收集Docker容器分散式日誌應用實踐

1 背景和問題 隨著雲端計算、PaaS平臺的普及,虛擬化、容器化等技術的應用,例如Docker等技術,越來越多的服務會部署在雲端。通常,我們需要需要獲取日誌,來進行監控、分析、預測、統計等工作,但是雲端的服務不是物理的固定資源,日誌獲取的難度增加了,以往可以SSH登陸的或者

Docker容器安裝vim

ont sts 使用 海外 upd comm follow 安裝 mat 在使用docker容器時,有時候裏邊沒有安裝vim,敲vim命令時提示說:vim: command not found,這個時候就需要安裝vim,可是當你敲apt-get install vim命令時

Docker容器flume source tail + sed 快取問題

背景 在使用docker 容器搭建nginx + flume + kafka的日誌收集平臺時,使用lua提取http request中的header和body,輸出json時會有 “\x22”字元存在, 在flume.source.command中加入tail

docker 容器連線vsftp

docker-compose.yml vsftpd:   container_name: vsftpd   image: fauria/vsftpd:latest   ports:     - "21:21"     - "20:20"     - "21100-21110

Docker容器應用的日誌收集方案

日誌對開發和維護的重要性不言而喻。分散式應用中的日誌分佈在多臺機器上,所以我們需要將日誌採集到一個地方來集中管理。目前比較常見的日誌方案是ElK,主要包括三大元件:Elasticsearch, Logstash和Kibana。這裡主要說一下使用logstash收集Docke

docker容器網路請求緩慢問題解決

在使用docker的過程中發現了幾個問題,在docker裡進行的網路請求經常會失敗,比如npm install以及bundle install等操作,或者是作為中間層在應用中去獲取api資料的過程經常會出現timeout等情況,所以開始探究docker的網路機制

Docker 容器服務自啟動

修改 apach ash 退出 嘗試 auto 內容 啟動腳本 docke 使用Ubuntu鏡像,安裝Apache2後,需要Aapche2隨著容器啟動而啟動。 之前嘗試在/etc/rc裏面修改等方法,並不能隨著容器啟動。 然後把啟動寫到CMD["service&q

Flume+Kafka收集Docker容器分散式日誌應用實踐

1 背景和問題 隨著雲端計算、PaaS平臺的普及,虛擬化、容器化等技術的應用,例如Docker等技術,越來越多的服務會部署在雲端。通常,我們需要需要獲取日誌,來進行監控、分析、預測、統計等工作,但是雲端的服務不是物理的固定資源,日誌獲取的難度增加了,以往可以SSH登陸的或者FTP獲取的,現在可不那麼容易獲得

外網訪問Docker容器

外網訪問內網Docker容器 本地安裝了Docker容器,只能在區域網內訪問,怎樣從外網也能訪問本地Docker容器? 本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動Docker容器 Docker容器預設的sshd埠是22。 2. 實現步驟 2.1 下載並解壓holer軟體包

怎樣從外網訪問Docker容器

外網訪問內網Docker容器 局域網裡的主機上安裝了Docker容器,只能在內網訪問,怎樣從外網也能訪問內網的Docker容器? 本文將介紹具體的實現步驟。 1. 準備工作 1.1 安裝並啟動Docker容器 Docker容器預設的sshd埠是22。 2. 實現步驟 2.1 下載並解壓holer