我在centos7 下没有找到/etc/default/docker docker的配置文件。所以查找了一些资料说,也不在这路径下配置,也不好直接修改docker的原配置文件。于是乎,有人在直接手工建立配置文件吧(直接仿造的别人的目录下)。
配置文件路径如下(你可以从参考的url中参考)(创建):
[root@anonymous docker.service.d]# pwd
/etc/systemd/system/docker.service.d
[root@anonymous docker.service.d]# ll
总用量 4
-rw-r--r--. 1 root root 132 11月 11 21:27 docker.conf
[root@anonymous docker.service.d]#
编辑docker.conf文件(文件内容如下):
[root@anonymous docker.service.d]# vim docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --label name=docker_server
强调一下,这里是需要两个"ExecStart="这个的。具体原因我也不知道。但是下面那一行的作用是:docker的启动配置命令。意思是指:
/usr/bin/dockerd 表示指向该目录下的它。【注意一下:这句话换成:/usr/bin/docker daemon 是在启动的时候失败的。你可以去docker的默认配置文件(/usr/lib/systemd/system/docker.service)中进行查看"ExecStart="的配置】
-H tcp://0.0.0.0:2375 表示开启端口2375 通过远程进行访问
unix://var/run/docker.sock 表示docker可以进行本地访问(如果只配上面的话,本机器的docker ps/…各种命令不生效了。) 【我试了一下,在该命令的前面不需要再次配置 -H 了。否则会报错:错误信息是说:启动项中只需要一个-H 就行】
--label name=docker_server 表示标签名叫做docker_server
配置完成之后,那么应该将docker的守护进行重启,命令如下:
[root@anonymous docker.service.d]# systemctl daemon-reload
[root@anonymous docker.service.d]# systemctl restart docker
如果报错了,你得用systemctl status docker 进行排查问题。
这时我们查看一下docker 守护进程的状态信息(就是上面一句话,挺多信息可观察出的)
[root@anonymous system]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/docker.service.d
└─docker.conf
Active: active (running) since 日 2018-11-11 21:27:51 CST; 57min ago
Docs: https://docs.docker.com
Main PID: 22842 (dockerd)
Tasks: 18
Memory: 45.6M
CGroup: /system.slice/docker.service
├─22842 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --label name=docker_server
└─22854 docker-containerd --config /var/run/docker/containerd/containerd.toml
一句话一句话的个人理解如下:
1. 下面这句话表达的意思是:已经从/usr/lib/systemd/system/docker.service 默认的docker 配置文件加载成功。(vendor preset: disabled不是很懂干嘛用的)
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
2. 下面这一句话表示的是,自己的整的配置文档已经生效了(已被加载进来)
Drop-In: /etc/systemd/system/docker.service.d
└─docker.conf
3. 下面这部分表示的是docker的主进程的pid是22842 ,开启的命令就是配置自己配置文件中的配置信息(/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --label name=docker_server)。
Main PID: 22842 (dockerd)
Tasks: 18
Memory: 45.6M
CGroup: /system.slice/docker.service
├─22842 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock --label name=docker_server
└─22854 docker-containerd --config /var/run/docker/containerd/containerd.toml
[root@anonymous system]# docker info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 16
Server Version: 18.06.1-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-862.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.796GiB
Name: anonymous
ID: UWY5:6FIL:AY7H:DS5O:Y4AN:PLXD:NUUP:VDIV:32ID:22C6:2K3J:E3WS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
name=docker_server
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
Live Restore Enabled: false
看下面一句信息就好:配置的labels生效了。
Labels:
name=docker_server
由此,服务端的配置已经完成了。
[root@anonymous run]# curl http://192.168.1.5:2375/info
[root@anonymous run]# docker -H tcp://192.168.1.5:2375 info
[root@anonymous run]# export DOCKER_HOST="tcp://192.168.1.5:2375"
[root@anonymous run]# docker info // 这时已经是访问Service端的信息。
echo 可查看自己的配置环境。
[root@anonymous run]# echo $DOCKER_HOST
tcp://192.168.1.5:2375
如果客户端要访问回本机器的docker服务的话。只需要将环境变量进行设置为空,那么便可以了。
[root@anonymous run]# export DOCKER_HOST=""
参考url:
https://www.cnblogs.com/maruidong/p/8027397.html
https://blog.csdn.net/faryang/article/details/75949611
http://www.cnblogs.com/langfanyun/p/9550584.html
http://www.bubuko.com/infodetail-2615766.html