Docker開啓Remote API 訪問 2375端口

Docker常見端口

我看到的常見docker端口包括:php

2375:未加密的docker socket,遠程root無密碼訪問主機
2376:tls加密套接字,極可能這是您的CI服務器4243端口做爲https 443端口的修改
2377:羣集模式套接字,適用於羣集管理器,不適用於docker客戶端
5000:docker註冊服務
4789和7946:覆蓋網絡html

開啓配置

方法一

首先是怎麼配置遠程訪問的API:linux

sudo vim /etc/default/docker

加入下面一行docker

DOCKER_OPTS="-H tcp://0.0.0.0:2375"

重啓docker便可:json

sudo systemctl restart docker

PS:這是網上給的配置方法,也是這種簡單配置讓Docker Daemon把服務暴露在tcp的2375端口上,這樣就能夠在網絡上操做Docker了。Docker自己沒有身份認證的功能,只要網絡上能訪問到服務端口,就能夠操做Docker。vim

方法二

在/usr/lib/systemd/system/docker.service,配置遠程訪問。api

主要是在[Service]這個部分,加上下面兩個參數安全

# vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重啓服務器

systemctl daemon-reload
systemctl restart docker

方法三

下面修改daemon.json的配置網絡

vim /etc/docker/daemon.json

{
  "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}

"unix:///var/run/docker.sock":unix socket,本地客戶端將經過這個來鏈接 Docker Daemon。
"tcp://0.0.0.0:2375":tcp socket,表示容許任何遠程客戶端經過 2375 端口鏈接 Docker Daemon。

修改配置之後

而後讓docker從新讀取配置文件,並重啓docker服務

systemctl daemon-reload
systemctl restart docker

查看docker進程:

[root@slaver2 ~]# ps -ef|grep docker
root      44221      1  1 18:16 ?        00:00:06 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

Docker守護進程打開一個HTTP Socket,這樣才能實現遠程通訊

簡單使用

-H爲鏈接目標主機docker服務

查看docker版本

[root@slaver2 /]# docker -H tcp://18.16.202.95:2375 version
Client: Docker Engine - Community
 Version:           19.03.0
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        aeac9490dc
 Built:             Wed Jul 17 18:15:40 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at tcp://18.16.202.95:2375. Is the docker daemon running?

查看鏡像包:

[root@slaver2 ~]# docker -H tcp://18.16.202.95:2375 images
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
zookeeper                                  3.5.5               3487af26dee9        4 weeks ago         225MB
k8s.gcr.io/kube-apiserver                  v1.15.1             68c3eb07bfc3        8 weeks ago         207MB
k8s.gcr.io/kube-scheduler                  v1.15.1             b0b3c4c404da        8 weeks ago         81.1MB
k8s.gcr.io/kube-proxy                      v1.15.1             89a062da739d        8 weeks ago         82.4MB
k8s.gcr.io/kube-controller-manager         v1.15.1             d75082f1d121        8 weeks ago         159MB
quay.io/coreos/flannel                     v0.11.0-amd64       ff281650a721        7 months ago        52.6MB
k8s.gcr.io/coredns                         1.3.1               eb516548c180        8 months ago        40.3MB
k8s.gcr.io/etcd                            3.3.10              2c4adeb21b4f        9 months ago        258MB
quay.io/jetstack/cert-manager-controller   v0.5.2              2e4d862afebb        9 months ago        47.3MB
confluentinc/cp-kafka                      5.0.1               5467234daea9        10 months ago       557MB
k8s.gcr.io/pause                           3.1                 da86e6ba6ca1        21 months ago       742kB
radial/busyboxplus                         curl                71fa7369f437        4 years ago         4.23MB

參考:

Docker Remote API的安全配置

Docker 2375 端口入侵服務器

遠程鏈接docker daemon,Docker Remote API

遠程訪問 Docker Daemon

相關文章
相關標籤/搜索