2016-07-14 25 views
0

我按照官方document安裝DockerUbuntu 16.04 LTS。由於我的服務器工作在代理之後,所以我需要爲Docker配置代理。我的主機上運行這樣的過程:我如何知道「init」或「systemd」是否控制docker?

# ps -aef | grep init 
root   1  0 0 03:05 ?  00:00:01 /sbin/init 
# ps -aef | grep docker 
root  3223  1 0 04:04 ?  00:00:00 /usr/bin/docker daemon -H fd:// 
root  3230 3223 0 04:04 ?  00:00:00 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc --start-timeout 2m 

由於docker的父親工藝init,我修改/etc/default/docker文件:

# cat /etc/default/docker 
# Docker Upstart and SysVinit configuration file 

# 
# THIS FILE DOES NOT APPLY TO SYSTEMD 
# 
# Please see the documentation for "systemd drop-ins": 
# https://docs.docker.com/engine/articles/systemd/ 
# 

# Customize location of Docker binary (especially for development testing). 
#DOCKER="/usr/local/bin/docker" 

# Use DOCKER_OPTS to modify the daemon startup options. 
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" 

# If you need Docker to use an HTTP proxy, it can also be specified here. 
export http_proxy="http://web-proxy.corp.xxxxxx.com:8080/" 
export https_proxy="https://web-proxy.corp.xxxxxx.com:8080/" 
...... 

但不幸的是,這種改變不會生效。我懷疑Dockersystemd控制,所以我一下:

# systemctl status docker 
● docker.service - Docker Application Container Engine 
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) 
    Active: active (running) since Thu 2016-07-14 03:19:35 EDT; 2min 16s ago 
    Docs: https://docs.docker.com 
Main PID: 3057 (docker) 
    Tasks: 24 
    Memory: 25.2M 
     CPU: 531ms 
    CGroup: /system.slice/docker.service 
      ├─3057 /usr/bin/docker daemon -H fd:// 
      └─3064 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc --start-timeout 2m 
...... 

然後我按照這個post設置代理,現在的作品!

根據我的理解,由於docker過程是由init產生的,所以應該由它來控制。但實際上,它似乎由systemd控制。如何知道initsystemd是否控制docker

+1

未來的問題有關systemd將是對HTTPS更合適:/ /unix.stackexchange.com/或https://askubuntu.com。 StackOverflow專注於編程問題。 –

+0

@MarkStosberg:明白了,thx非常適合這種提示! –

回答

1

在Ubuntu 16.04上,/sbin/init systemd。可以確認的是,二進制是由systemd-sysv包提供:

dpkg -L systemd-sysv | grep /sbin/init 

此外,「初始化」僅僅是systemd一個符號鏈接:

$ ls -lthd /sbin/init 
lrwxrwxrwx 1 root root 20 May 12 05:39 /sbin/init -> /lib/systemd/systemd 
相關問題