一手掌握! -- 局域网内利用Portainer集中管理所有服务器上的Docker

2024-06-06 15:41:12 30点赞 284收藏 19评论

场景介绍

各位值友大家好,今天给大家带来新的干货。先介绍下使用场景,以便大家理解:

如果你家里部署了很多服务器,不管是物理机还是虚拟机,可能每台服务器上都部署了docker。而管理这些容器的时候,需要分别登录相应服务器。且前提是每台服务器都需要安装可视化容器管理应用。那么可否把这些docker容器集中在一起,方便查看管理呢? 答案是肯定的。

本文适用于广大折腾er,如果你家只有一台NAS装docker,那暂时用不到,但以后很可能用得到。如果你家不止一台NAS或者linux服务器,比如黑白群晖,比如NAS+软路由 等等,那么本文也许会帮到您。

先给大家看看效果:

通过远程集中管理多台服务器docker效果通过远程集中管理多台服务器docker效果

种种原因,我PVE,NAS部署了多套服务器。现在都集中到一起管理,一目了然,很是方便。

原理注意事项

原理是通过开通服务器2375端口,实现远程管理。因为没有认证机制,所以只要开通就可以连接。

所以请不要把暴露于公网上的服务器的2375端口放开。换言之,此方法只适用于局域网。

如何实现

前提:安装Portainer

你得安装了Docker(废话)。

首先在你的管理服务器上安装Portainer。

我这有个中文的Portainer,大家需要可以直接安装。自行修改端口就可以了。

docker run -d --restart=always --name="portainer" -p 9003:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /portainer:/data 6053537/portainer-ce

Step1. 安装好后,需要在远程连接目标服务器开通2375端口。开通方式:

1.群晖

SSH 链接后(root 权限)打开文件:

/var/packages/Docker/etc/dockerd.json

添加一行代码:

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

群晖添加一行代码群晖添加一行代码

保存重启 Docker 服务

2.Alpine

/etc/init.d/docker

修改这个文件中的: command_args 在参数后 增加: -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock, 完整的配置文件类似

#!/sbin/openrc-run

# Copyright 1999-2013 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

command="${DOCKERD_BINARY:-/usr/bin/dockerd}"

pidfile="${DOCKER_PIDFILE:-/run/${RC_SVCNAME}.pid}"

command_args="-p "${pidfile}" ${DOCKER_OPTS} -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock"

DOCKER_LOGFILE="${DOCKER_LOGFILE:-/var/log/${RC_SVCNAME}.log}"

DOCKER_ERRFILE="${DOCKER_ERRFILE:-${DOCKER_LOGFILE}}"

DOCKER_OUTFILE="${DOCKER_OUTFILE:-${DOCKER_LOGFILE}}"

start_stop_daemon_args="--background

--stderr "${DOCKER_ERRFILE}" --stdout "${DOCKER_OUTFILE}""

extra_started_commands="reload"

rc_ulimit="${DOCKER_ULIMIT:--c unlimited -n 1048576 -u unlimited}"

retry="${DOCKER_RETRY:-TERM/60/KILL/10}"

depend() {

need sysfs cgroups

}

start_pre() {

checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"

}

reload() {

ebegin "Reloading ${RC_SVCNAME}"

start-stop-daemon --signal HUP --pidfile "${pidfile}"

eend $? "Failed to stop ${RC_SVCNAME}"

}

3.CentOS

/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

在末尾加上-H tcp://0.0.0.0:2375

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

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

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

BindsTo=containerd.service

After=network-online.target firewalld.service containerd.service

Wants=network-online.target

Requires=docker.socket

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.

# Both the old, and new location are accepted by systemd 229 and up, so using the old location

# to make them work for either version of systemd.

StartLimitBurst=3

# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.

# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make

# this option work for either version of systemd.

StartLimitInterval=60s

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Comment TasksMax if your systemd version does not supports it.

# Only systemd 226 and above support this option.

TasksMax=infinity

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

[Install]

4.Debian、Ubuntu等linux,基本道理相同

你修改的是/usr/lib/systemd/system/docker.service下的服务配置文件:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

5.威联通

这个没搞定,后面单独说。


Step2.Portainer 里面添加环境

1.点击【添加环境】

1点击【添加环境】1点击【添加环境】

2.选择【独立的Docker】,开始向导

2选择【独立的Docker】2选择【独立的Docker】
  1. 选择【API】,输入名称, 目标服务器地址,端口2375,点击连接即可。

输入名称, 目标服务器地址,端口2375,点击连接即可。输入名称, 目标服务器地址,端口2375,点击连接即可。

单独说说威联通

作者不才,找到了威联通的docker配置文件,但修改并不起作用

威联通安装Docker后,配置文件位于/share/CACHEDEV1_DATA/.qpkg/container-station/etc/docker.json

问了威联通客服,也说不支持远程docker管理。

群晖客服反馈群晖客服反馈

如果哪位值友搞定了,也烦请赐教啊,感激不尽。

于是,我只能曲线救国,另辟蹊径了!就是在威联通里面装一个Portainer Agent。

(当然这个方法也适于其他linux服务器,但是都会多一个容器,和镜像,比较占空间和资源)

我们在威联通SSH直接输入以下内容

docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.19.4

威联通安装portainer agent威联通安装portainer agent

安装完毕后,威联通会多一个 portianer_agent 容器

安装完毕后,威联通会多一个 portianer_agent 容器安装完毕后,威联通会多一个 portianer_agent 容器

我们回到Portainer 管理端,准备连接威联通。

步骤和之前差不多,这次选【Agent】,输入威联通ip:9001 连接即可

这次选【Agent】,输入威联通ip:9001 连接即可这次选【Agent】,输入威联通ip:9001 连接即可

到此,完活!效果如下图:

效果如图效果如图

随便点一个进去,就能看到该服务器上的所有容器了

随便点一个进去,就能看到该服务器上的所有容器了随便点一个进去,就能看到该服务器上的所有容器了

点击【首页】可以切换到其他服务器。

总结下

如果你家的数码环境类似,有多个docker服务器,那么可以借鉴这个方法来统一管理所有docker,比较方便直接。

感谢各位看官耐心阅读到此。我是以浪得虚名,浪是浪的难受的[浪]。 喜欢数码、喜欢研究、喜欢讲原理、喜欢分享。

从来不索要点赞收藏打赏,我也是其他作者的阅读者,我会因为喜欢才会赞,觉得对自己有用才会收藏,心情激动才会打赏,哈哈哈哈。

能力一般水平有限,任何问题,错误,疏漏,欢迎大家指教。评论区见!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2698.75元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3298.85元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

2299元起

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C2 4盘位NAS(赛扬N5095、8GB)

2699元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1898.9元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

1198.5元起

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

7310元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1898.9元起

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5105、8GB)

2000元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1699元起

QNAP 威联通 TS-216 天空保垒 4G内存四核心 nas网络存储服务器磁盘阵列网盘云盘云存储(不含硬盘)

QNAP 威联通 TS-216 天空保垒 4G内存四核心 nas网络存储服务器磁盘阵列网盘云盘云存储(不含硬盘)

暂无报价

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1699元起

威联通(QNAP)TBS-h574TX-i5 16G内存雷电4全快闪五盘位NAS网络存储服务器

威联通(QNAP)TBS-h574TX-i5 16G内存雷电4全快闪五盘位NAS网络存储服务器

12492元起

QNAP 威联通 TS-673A 6盘位NAS (V1500B、8GB)

QNAP 威联通 TS-673A 6盘位NAS (V1500B、8GB)

6600元起

QNAP 威联通 TS-h973AX 9盘位NAS

QNAP 威联通 TS-h973AX 9盘位NAS

7020元起

QNAP 威联通 TS-932PX 9盘位NAS(AL324、4GB)

QNAP 威联通 TS-932PX 9盘位NAS(AL324、4GB)

4780元起
19评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
284
扫一下,分享更方便,购买更轻松