docker可视化界面portainer安装与使用
!!!前提,需要两台服务器,如果虚拟机也不够的单台也可以,因为是自己的虚拟机所以直接关防火墙以免端口被拦截。
systemctl stop firewalld
systemctl disable firewalld
如果docker执行命令一直卡着不动的话也是因为防火墙的原因关掉就正常了
这个可视化docker类似主从结构,一个主节点,多个被控节点,所以最好是两台服务器这样比较贴切实际情况,在同一台部署一个主节点一个被控节点也可以。两台都得部署docker
1、主节点web部署
docker安装参考我的上一篇教程https://blog.csdn.net/weixin_51761461/article/details/144963163?fromshare=blogdetail&sharetype=blogdetail&sharerId=144963163&sharerefer=PC&sharesource=weixin_51761461&sharefrom=from_link
docker安装好后,portainer中文版下载执行以下命令
拉取portainer最新版本镜像
docker pull 6053537/portainer-ce:latest
如果出现以下报错的话
Error response from daemon: Get "https://index.docker.io/v1/search?q=nginx&n=25": dial tcp 108.160.170.52:443: connect: connection refused
去找docker的daemon.json把里面的镜像源改成这个,正常安装的docker这个文件应该是在
/etc/docker/daemon.json
"registry-mirrors": [
"https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
如果docker search xxx命令也出现的话就没办法了,因为docker的这个命令是不走配置里面的镜像源的,只有docker pull拉取镜像的时候是走镜像源的
docker volume create portainer # 创建名为"portainer"的卷等下给portainer镜像使用
正常拉取完,并创建完镜像的话就可以开始运行了
如果实在pull不了镜像的话这边有打包好的镜像包下载到服务器后导入即可
portainer-ce.tar包链接: https://pan.baidu.com/s/1vfIxe2QLT2X_25-KWUpS7Q?pwd=r6sk 提取码: r6sk
docker load -i 文件目录/portainer-ce.tar
先查看一下镜像的名称,前面的REPOSITORY就是镜像的名称
docker images
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
portainer/agent 2.27.3 1ca51431e0d3 2 weeks ago 171MB
6053537/portainer-ce latest 8b3082476dac 4 months ago 333MB
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer:/data --restart always --name portainer 6053537/portainer-ce
# 映射服务器内的端口:容器内端口 文件映射docker.sock 卷名称:容器内挂载目录 重启机制 总是 名称 自己定义 镜像名称
执行完直接浏览器访问服务器ip:9000,要是自己改过端口映射就改成自己的,我这里9000端口有其他服务所以用的9999端口。要注意的是如果你前面执行上面那个创建容器的命令docker run的时候参数或者其他的端口占用了,他容器还是会创建,导致后面什么都没错的时候也创建不了,可以用docker ps -a查一下已经创建的容器然后用docker stop 容器id 先停掉然后再docker rm 容器id 进行删除,确定多余的容器已经被删除了之后再重新执行。
如果出现这个容器正常运行但重启整个docker的时候访问不了的话检查一下是不是缺了这个参数
-v /var/run/docker.sock:/var/run/docker.sock
重启docker的时候容器直接被动启动,容器启动时可能没有完全与 Docker 守护进程建立连接,导致报错会识别不了这个docker.sock文件,但正常直接docker restart 容器id又可以正常访问是因为这个时候基本已经建立好通讯连接了。所以启动容器的时候最好都加一下这个参数
出现该界面后根据指引设置密码然后登录
登录后需要配置节点环境
2、被控节点部署
同样先安装docker然后执行命令拉取portainer_agent镜像
docker pull portainer/agent:latest
#拉取portainer_agent镜像
同样拉取不了镜像的自己下载一下上传到服务器上导入
agent.tar包链接: https://pan.baidu.com/s/1HdN9DrldL4zDvfA2ybfUMQ?pwd=33db 提取码: 33db
docker load -i 文件目录/agent.tar
创建卷
docker volume create portainer_agent
#创建名为portainer_agent的卷
运行容器
docker run -d -p 9001:9001 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_agent:/data --restart always --name portainer_agent portainer/agent
最好看下这个容器的日志
docker logs 容器id或容器名称
报错提示这个的话就是命令上面那个-v /var/run/docker.sock:/var/run/docker.sock这里服务器找不到/var/run/docker.sock这个文件,容器内是不变的,要看下daemon.json文件看是不是指定了其他的地址存放这个docker.sock,改成那个。
如果是上面这样的说明已经起来了
去到主节点的web页面,被控节点是没有web的。
3、配置被控节点进行创建连接
输入对应的服务器ip和端口然后点击连接,连接成功右上角会有提示
点击首页就能看到刚刚被控节点的docker了,点击进去就可以远程操控被控节点的docker了
4、portainer的使用
正常我们简单使用portainer的话就只需要看这三个就够了
首先是创建卷,做被控节点的容器数据持久化
左边就是我们一开始做被控节点所创建的卷,我们新建的话点右上角新建卷
输入名称点击创建就行
中间的一些内容的话感兴趣可以自己研究一下,简单用就不搞这么复杂了直接创建就行。
第二步拉取镜像
这里拉个nginx的镜像,可以用 : 去指定版本,不写的话默认是最高的版本,拉取完镜像就会在下面显示了
输入名称,镜像名称,端口映射,以及绑定的卷等
镜像如果已经拉取过点击进行模糊搜索就会有提示,直接选就行,如果不拉取镜像可以开启始终拉取镜像的开关,他会自己先去下载镜像
选择对应创建的卷以及映射容器内部的持久地址
选择重启策略
最后点击部署容器
部署完后就可以直接访问了
命令行访问容器内部
其余的一些功能可以自行探索一下,如果只是简单使用的话上面描述的功能就够用了。