自学内容网 自学内容网

docker安装portainer

1、拉取镜像

docker pull portainer/portainer-ce:latest

2、执行

docker run -d  --restart=always  --name portainer  -p 9000:9000  -v /var/run/docker.sock:/var/run/docker.sock  -v /data/portainer/data:/data  -v /data/portainer/public:/public  portainer/portainer-ce:latest

docker run -d \ # 以后台方式运行一个 Docker 容器
–name portainer \ # 将容器命名为portainer
-p 9000:9000 \ # 将主机的9000端口(左)映射到容器的9000端口(右)
–restart=always \ # 自动重启容器,包括Docker启动以及运行失败时
-v /var/run/docker.sock:/var/run/docker.sock \ # 将主机上的/var/run/docker.sock文件挂载到容器的/var/run/docker.sock文件。这样可以使得容器能够与主机上的Docker守护进程进行通信
-v portainer_data:/data \ # 将名为portainer_data的卷挂载到容器的/data目录。这样可以在容器内部持久化保存Portainer的数据
–privileged=true \ # 将容器设置为具有特权访问(portainer用不到)
portainer/portainer-ce:latest # 指定要运行的Docker镜像为portainer/portainer-ce,并使用最新的版本

问题一:

Error response from daemon: driver failed programming external connectivity on endpoint portainer
在这里插入图片描述

原因:在我们启动了Docker后,我们再对防火墙firewalld进行操作,就会发生上述报错,

详细原因:docker服务启动时定义的自定义链DOCKER,当 centos7 firewall 被清掉时,

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。

当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。

当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后操作 firewalld ,你就需要重启 Docker 进程了。
解决办法:输入指令 如下指令,重启docker服务及可重新生成自定义链DOCKER

systemctl restart docker

原文地址:https://blog.csdn.net/qq_38058332/article/details/143688505

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!