docker遠端訪問

2021-09-26 02:04:31 字數 3350 閱讀 4632

實現docker客戶端與另一台主機上的docker守護程序進行通訊

主機版本為centos7.4,docker版本為docker-ce-18.09.7-3.el7.x86_64

node1:192.168.0.111

node2:192.168.0.107

兩台安裝docker的環境

保證兩台主機上的docker的client api與server api版本一致

node1:

[root@localhost ~]# vim /etc/docker/daemon.json

檢視效果

修改通訊方式共有三種方式:

修改daemon.json檔案,新增host鍵值對

新增:「hosts」: [「tcp:

開放本機ip的2375埠,可以讓其他docker主機的client進行連線

修改/lib/systemd/system/docker.service檔案,新增-h啟動引數

修改:execstart=/usr/bin/docker -h tcp:

使用dokcerd啟動docker,新增-h引數

dockerd -h tcp:

centos7中/etc/docker/daemon.json會被docker.service的配置檔案覆蓋,直接新增daemon.json不起作用

所以我使用的是第二種方式

如果頻繁使用-h選項未免太過於麻煩,可以修改docker_host這個環境變數的值,node2就可以像使用本地的docker一樣來遠端連線node1的守護程序

當無需再遠端連線node1的守護程序時,將docker_host環境變數置空即可

因為node1設定了修改client與守護程序的通訊方式,所以本地無法再通過預設的socket進行連線,必須使用-h選項通過tcp來進行連線,也可以通過docker_host來修改

[root@localhost ~]# docker info

cannot connect to the docker daemon at unix:///var/run/docker.sock. is the docker daemon running?

[root@localhost ~]# docker -h 0.0.0.0:2375 info

如果本機依舊希望使用預設的socket進行連線,可以在/lib/systemd/system/docker.service中再新增乙個-h選項

[root@localhost ~]# vim /lib/systemd/system/docker.service

execstart=/usr/bin/dockerd -h tcp: -h unix:///var/run/docker.sock

[root@localhost ~]# systemctl daemon-reload

[root@localhost ~]# systemctl restart docker

[root@localhost ~]# ps -ef | grep docker

root 6462 1 2 23:40 ? 00:00:00 /usr/bin/dockerd -h tcp: -h unix:///var/run/docker.sock

root 6467 6462 0 23:40 ? 00:00:00 docker-containerd --config /var/run/docker/containerd/containerd.toml

root 6567 3919 0 23:40 pts/1 00:00:00 grep --color=auto docker

[root@localhost ~]# docker info

docker開啟遠端訪問

預設情況下,docker守護程序unix socket var run docker.sock 來進行本地程序通訊,而不會監聽任何埠,因此只能在本地使用docker客戶端或者使用docker api進行操作。如果想在其他主機上操作docker主機,就需要讓docker守護程序開啟乙個http soc...

docker開啟遠端訪問

vi lib systemd system docker.service修改docker.service檔案中以execstart開頭的行 centos 7修改為 execstart usr bin dockerd h tcp h unix var run docker.sockcentos7以下修...

docker無法遠端訪問

首先,docker能夠被遠端訪問的話,需要編輯docker所在的宿主機中的檔案 lib systemd system docker.service 修改以execstart開頭的行,在其後面直接新增下面內容即可 h tcp h unix var run docker.sock修改後儲存檔案,配置檔案...