本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Portainer 介绍
Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
github 地址:github.com/portainer/p…
基于Docker Standalone 的 Portainer 部署
-
拉取 portainer-ce 的镜像:
docker pull portainer/portainer-ce:latest -
创建 Portainer Server 将用于存储数据的卷:
docker volume create portainer_data -
启动 Portainer Server 服务:
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data/portainer_data portainer/portainer-ce -
通过 ==docker ps== 命令查看服务状态:
root@server:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de5b28eb2fa9 portainer/portainer-ce:latest "/portainer" 2 weeks ago Up 9 days 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp portainer root@Docker1:~# ss -tnlp | egrep '(8000|9000)' LISTEN 0 20480 *:8000 *:* users:(("docker-proxy",pid=2411,fd=4)) LISTEN 0 20480 *:9000 *:* users:(("docker-proxy",pid=2397,fd=4))
Portainer 使用
访问 Portainer web 服务(xx.xx.xx.xx:9000/),首次需要设置 admin 用户密码:
管理本地 Docker
选择 ==Manager the local Docker environment==,点击==Connect==即可。
管理远程 Docker
Portainer 除了管理本地 Docker,也可以对其它宿主机的 Docker 进行远程管理; dockerd 默认只监听 socket 文件,远程访问需要添加监听 tcp 的 2375 端口:
-
查看 ==systemctl status docker== 命令 ==docker.service== 配置文件所在位置:
root@Docker2:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/etc/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2021-10-29 15:12:11 CST; 3min 24s ago Docs: https://docs.docker.com Main PID: 19844 (dockerd) Memory: 28.8M CGroup: /system.slice/docker.service ├─19844 /usr/bin/dockerd -H tcp://0.0.0.0:2375 └─19856 docker-containerd --config /var/run/docker/containerd/containerd.toml ... -
Dockerd 添加 2375 端口监听:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -
重载配置并重启, 然后查看端口:
root@Docker2:~# systemctl daemon-reload root@Docker2:~# systemctl restart docker root@Docker2:~# ss -tnlp | grep 2375 LISTEN 0 20480 *:2375 *:* users:(("dockerd",pid=11010,fd=3)) -
在 Portainer 中添加 Endpoint:
==注意==:修改后在 docker 节点服务器上执行命令是出现如下情况的,可能因版本对应的 ==docker.service== 文件配置内容的有区别导致
root@Docker2:~# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
==解决==:增加 == -H unix://var/run/docker.sock == 即可。
ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375
具体功能使用
- 总体情况:包含环境的基本信息、镜像、网络、容器、卷的统计情况。
- 容器:包含启动、停止、杀死、重启、暂停、恢复、删除、添加容器等功能。
- 镜像:删除镜像、构建新镜像、导入镜像、导出镜像等。
- 网络:删除网络、创建新网络等。
- 存储卷:删除卷、新增卷等。