docker安装Portainer
发布时间 :
一、创建网络 mynet
作用:之后可以通过容器名连接相应容器
1 2 3 4 5
| docker network create mynet
docker network ls
docker network rm mynet
|
二、安装Portainer
2.1、传统命今行安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| docker stop portainer
docker rm portainer
docker rmi portainer/portainer-ce
docker pull portainer/portainer-ce
docker run -d \ --name=portainer \ --hostname=docker-portainer \ -p 8000:8000 \ -p 9000:9000 \ --net='mynet' \ --restart=unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /root/docker-data/portainer/data:/data \ portainer/portainer-ce
|
2.2、docker compose 安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| version: '3.3' services: portainer-ce: container_name: portainer hostname: docker-portainer network_mode: mynet restart: unless-stopped volumes: - '/var/run/docker.sock:/var/run/docker.sock' - '/root/docker-data/portainer/data:/data' image: portainer/portainer-ce
|
1 2 3
| docker compose down docker rmi portainer/portainer-ce docker compose up -d
|
三、用portainer远程管理其他机器上的docker
docker常见端口
2375:未加密的docker socket,远程无密码访问主机
2376:tls加密套接字,
2377:集群模式套接字,适用于群集管理器,不适用于docker客户端
5000:docker注册服务
4789 和 7946:覆盖网络
1、方法:创建 docker-tls.sh,并执行
https://docs.docker.com/engine/security/protect-access/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
SERVER="10.10.10.51" PASSWORD="lyou" COUNTRY="CN" STATE="ZJ" CITY="HZ" ORGANIZATION="ilab" ORGANIZATIONAL_UNIT="ilab" EMAIL="janwe88@gmail.com"
echo"开始生成文件"
mkdir -p ./ca
cd ca
openssl genrsa -aes256 -passout "pass:$PASSWORD" -out ca-key.pem 4096
openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
sh -c 'echo "subjectAltName = IP:'$SERVER',IP: 0.0.0.0" >> extfile.cnf' sh -c 'echo "extendedKeyUsage = serverAuth" >> extfile.cnf'
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem -extfile extfile.cnf
openssl genrsa -out key.pem 4096
openssl req -subj '/CN=client' -new -key key.pem -out client.csr sh -c 'echo extendedKeyUsage = clientAuth >> extfile.cnf'
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf
chmod 0400 ca-key.pem key.pem server-key.pem
chmod 0444 ca.pem server-cert.pem cert.pem
rm -rf ca.srl server.csr client.csr extfile.cnf
echo "生成文件完成"
|
2、修改 /usr/lib/systemd/system/docker.service
1 2 3 4 5 6 7 8 9 10
|
sed -i "s/ExecStart=/#ExecStart=/g" /usr/lib/systemd/system/docker.service line=$(sed -n -e "/#ExecStart=/=" /usr/lib/systemd/system/docker.service)
sed -i "${line}a ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/root/docker-data/docker-ca/ca/ca.pem --tlscert=/root/docker-data/docker-ca/ca/server-cert.pem --tlskey=/root/docker-data/docker-ca/ca/server-key.pem" /usr/lib/systemd/system/docker.service
systemctl daemon-reload & systemctl restart docker
|
3、测试连通性
1 2 3 4 5
| docker --tlsverify \ --tlscacert=ca.pem \ --tlscert=cert.pem \ --tlskey=key.pem \ -H=10.10.10.3:2376 version
|
4、在控制的Portainer中添加被控制Portainer

四、portainer管理局域网中的群晖docker
1 2 3 4
| sudo vi /var/packages/Docker/etc/dockerd.json
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
|
1 2 3
| netstat -tnlp |grep 2375
ps -ef | grep docker
|
参考文档:https://zhuanlan.zhihu.com/p/149235759
查看防火墙状态
1
| >systemctl status firewalld
|
开启防火墙
1
| >systemctl start firewalld
|
关闭防火墙
1
| >systemctl stop firewalld
|
查看当前firewall状态
重启firewall
禁止开机启动
1
| >systemctl disable firewalld.service
|
查看已经开放的端口:
1
| >firewall-cmd --list-ports
|
开启端口
1
| >firewall-cmd --zone=public --add-port=80/tcp --permanent
|
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
开启端口后需要重启防火墙
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 xiyugee@qq.com