Centos7-Docker1.12开启守护进程(远程调用)

文章目录
  1. 1. - 修改配置
  2. 2. - 重点
  3. 3. - 异常情况

本文讲述了Docker1.12.6在Linux下开启守护进程(远程调用),理论上来说其他版本也是一样的改法,博主参考很多都是巨坑,综合自己实战分享给大家,如有错误请留言;

- 修改配置

1.修改 docker.service 文件

1
vi /usr/lib/systemd/system/docker.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer

[Service]
## 我将原本的给注释掉了,留个备份靠谱一点 ##
#Type=notify
#NotifyAccess=all
#KillMode=process
#EnvironmentFile=-/etc/sysconfig/docker
#EnvironmentFile=-/etc/sysconfig/docker-storage
#EnvironmentFile=-/etc/sysconfig/docker-network
#Environment=GOTRACEBACK=crash
#Environment=DOCKER_HTTP_HOST_COMPAT=1
#Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
#ExecStart=/usr/bin/dockerd-current \
# --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
# --default-runtime=docker-runc \
# --exec-opt native.cgroupdriver=systemd \
# --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
# $OPTIONS \
# $DOCKER_STORAGE_OPTIONS \
# $DOCKER_NETWORK_OPTIONS \
# $ADD_REGISTRY \
# $BLOCK_REGISTRY \
# $INSECURE_REGISTRY
#ExecReload=/bin/kill -s HUP $MAINPID
#LimitNOFILE=1048576
#LimitNPROC=1048576
#LimitCORE=infinity
#TimeoutStartSec=0
#Restart=on-abnormal
#MountFlags=slave

## 主要就是这一段,其实大部分都一样就是 ExecStart 的第一句不一样而已,但是依旧建议Copy ##

Type=notify
ExecStart=/usr/bin/docker-current daemon --tls=false -H unix:///var/run/docker.sock -H tcp://192.168.18.183:2375 \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=docker-runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

- 重点

忘啥不能忘了它俩,只要是修改了 docker.service 文件就必须执行以下以下命令。

1
2
systemctl daemon-reload
systemctl restart docker.service

2.测试

1
2
3
[root@localhost ~]# ps axu | grep docker
root 9708 0.0 0.1 808312 29172 ? Ssl 17:57 0:00 /usr/bin/dockerd-current --tls=false -H unix:///var/run/docker.sock -H tcp://192.168.18.183:2375 --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current
root 9721 0.0 0.0 362836 8140 ? Ssl 17:57 0:00 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --runtime docker-runc --runtime-args --systemd-cgroup=true
1
2
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE

至此说明 docker 守护进程已经打开,我们在浏览器输入 http://192.168.18.183:2375 得到 {"message":"page not found"} 则表示我们配置一切正确

- 异常情况

有人说 修改完配置 docker images 显示错误(表示未曾遇到),那么请输入

1
2
export DOCKER_HOST="http://192.168.18.183:2375"
source /etc/profile