使用守护程序启动在 Ubuntu 14.04 上启用 Docker 远程 API
Enabling Docker Remote API on Ubuntu 14.04 with daemon startup
我正在为 docker 激活远程 API 而苦恼。
已尝试通过以下命令设置配置:
DOCKER_OPTS="-H tcp://127.0.0.1:2375"
在以下文件中:
/etc/default/docker
和
/etc/init.d/docker.conf
然后通过 pkill 重新启动守护进程并通过 docker 守护进程再次启动 & 但仍然不适合我。我错过了什么?
root@ubuntu:~# docker info
Containers: 7
Running: 1
Paused: 0
Stopped: 6
Images: 24
Server Version: 1.11.2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 139
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.2.0-36-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.78 GiB
Name: ubuntu
enter code here
运行 docker daemon &
手动忽略所有配置文件。当您使用 OS upstart 命令或 /etc/init.d/docker start
启动 Docker 时会引用这些文件。要在手动启动时绑定到端口,您需要在那里传递参数:docker daemon -H tcp://127.0.0.1:2375
。请注意,这允许任何有权访问本地网络的人在您的计算机上获得完全根访问权限。
无需更改 docker 守护程序配置并重新启动它,您可以使用 Sherpa 通过远程代理打开到远程 API 的路径。类似于:
docker run -d \
--name sherpa \
-e CONFIG='[
{
"Path" : "/",
"Access": "allow",
"Addresses": ["10.0.0.0/8"]
}
]' \
-v /var/run/docker.sock:/tmp/docker.sock \
-p 4550:4550 \
djenriquez/sherpa --allow
会给你 4550 端口的访问权限,并且只接受来自 10.0.0.0/8 space 中的源客户端的请求。您还可以为远程 API 自定义各种 ACL。如果这样更容易,您可以 运行 在启动时使用 docker run
脚本。
在此处查看介绍性 post:https://www.linkedin.com/pulse/easily-enable-docker-remote-api-sherpa-dj-enriquez or directly to the repo here: https://hub.docker.com/r/djenriquez/sherpa/
- 更新/lib/systemd/system/docker.服务
sudo vim /lib/systemd/system/docker.service
在 [Service] 部分,将 ExecStart 的值更改为:
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
并保存文件
- 重启docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 验证
运行 以下命令之一:
ps aux | grep dockerd
预期结果如下所示:
root 4522 0.0 2.0 417112 81476 ? Ssl 20:36 0:00 /usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
curl 127.0.0.1:2375/info
预期结果将是一个长 json 字符串
netstat -nlp
将显示以下内容:
tcp6 0 0 :::2375 :::* LISTEN -
sudo docker -H tcp://127.0.0.1:2375 ps
将显示 运行ning 个容器
以上适用于 Ubuntu 14.04
我正在为 docker 激活远程 API 而苦恼。
已尝试通过以下命令设置配置:
DOCKER_OPTS="-H tcp://127.0.0.1:2375"
在以下文件中:
/etc/default/docker
和
/etc/init.d/docker.conf
然后通过 pkill 重新启动守护进程并通过 docker 守护进程再次启动 & 但仍然不适合我。我错过了什么?
root@ubuntu:~# docker info
Containers: 7
Running: 1
Paused: 0
Stopped: 6
Images: 24
Server Version: 1.11.2
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 139
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.2.0-36-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.78 GiB
Name: ubuntu
enter code here
运行 docker daemon &
手动忽略所有配置文件。当您使用 OS upstart 命令或 /etc/init.d/docker start
启动 Docker 时会引用这些文件。要在手动启动时绑定到端口,您需要在那里传递参数:docker daemon -H tcp://127.0.0.1:2375
。请注意,这允许任何有权访问本地网络的人在您的计算机上获得完全根访问权限。
无需更改 docker 守护程序配置并重新启动它,您可以使用 Sherpa 通过远程代理打开到远程 API 的路径。类似于:
docker run -d \
--name sherpa \
-e CONFIG='[
{
"Path" : "/",
"Access": "allow",
"Addresses": ["10.0.0.0/8"]
}
]' \
-v /var/run/docker.sock:/tmp/docker.sock \
-p 4550:4550 \
djenriquez/sherpa --allow
会给你 4550 端口的访问权限,并且只接受来自 10.0.0.0/8 space 中的源客户端的请求。您还可以为远程 API 自定义各种 ACL。如果这样更容易,您可以 运行 在启动时使用 docker run
脚本。
在此处查看介绍性 post:https://www.linkedin.com/pulse/easily-enable-docker-remote-api-sherpa-dj-enriquez or directly to the repo here: https://hub.docker.com/r/djenriquez/sherpa/
- 更新/lib/systemd/system/docker.服务
sudo vim /lib/systemd/system/docker.service
在 [Service] 部分,将 ExecStart 的值更改为:ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
并保存文件
- 重启docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
- 验证
运行 以下命令之一:
ps aux | grep dockerd
预期结果如下所示:
root 4522 0.0 2.0 417112 81476 ? Ssl 20:36 0:00 /usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
curl 127.0.0.1:2375/info
预期结果将是一个长 json 字符串netstat -nlp
将显示以下内容:
tcp6 0 0 :::2375 :::* LISTEN -
sudo docker -H tcp://127.0.0.1:2375 ps
将显示 运行ning 个容器
以上适用于 Ubuntu 14.04