基础环境
系统环境:
操作系统:CentOS 7.9
软件环境:
Docker-26.1.4、Docker Compose-2.27.1 、portainer-2.20.3
配置阿里yum源 :
1 2 3
| cd /etc/yum.repos.d mv CentOS-Base.repo CentOS-Base.repo.bak curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
|
配置防火墙策略:
1 2 3
| firewall-cmd --add-port=9443/tcp --permanent sudo firewall-cmd --reload sudo firewall-cmd --list-all
|
安装Docker
(1)安装 yum-utils 软件包(提供 yum-config-manager 实用程序)并设置存储库。
1 2 3 4
| # 安装 yum-utils 软件包 yum install -y yum-utils # 设置docker-ce存储库 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
(2)安装最新版docker和docker compose。
1
| yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
(3)修改Docker的数据目录为“/data/dockerData”,并修改docker镜像源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| # 创建Docker守护进程配置文件,编辑配置文件/etc/docker/daemon.json,配置docker数据目录,并修改docker镜像源 echo '{ "data-root": "/data/dockerData", "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud" ] }' > /etc/docker/daemon.json
|
(4)启动Docker服务,并设置为开机自启动。
1 2 3 4 5 6
| # 启动Docker服务 systemctl start docker # 设置Docker为开机自启动 systemctl enable docker # 查看Docker服务状态 systemctl status docker
|
安装portainer
(1)拉取portainer镜像并创建容器
方式一:使用docker命令
1
| docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer:/data portainer/portainer-ce:2.20.3
|
方式二:使用compose文件安装
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
| vi portainer.yml -------------------------------------------------- services: portainer: image: portainer/portainer-ce:2.20.3 container_name: portainer restart: always ports: - "9443:9443" volumes: - /var/run/docker.sock:/var/run/docker.sock - /data/portainer:/data user: "0" networks: net: ipv4_address: 172.20.110.10
networks: net: driver: bridge ipam: config: - subnet: 172.20.110.0/24 -------------------------------------------------- #运行安装 docker compose -f portainer.yml up -d
|
(2)初始化portainer,设置admin用户的密码
(3)进入系统后,点击“Get Started”,查看本机的容器,如下图。
多实例环境管理
Portainer可以管理多个环境,包括Docker Standalone、Docker Swarm、Kubernetes、ACI等。
使用Portainer管理多Docker Standalone实例,有两种方式,分别是api和客户端容器。
方式一:使用docker api 管理Docker Standalone实例
(1)在其他实例环境上,修改docker服务的配置文件,让Docker守护进程通过TCP在的2375端口监听连接,并通过UNIX套接字在本地监听连接。
即在ExecStart后添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock参数。
1 2 3 4
| vi /usr/lib/systemd/system/docker.service #修改内容如下 [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
|
(2)重新加载配置,使配置生效。
1 2 3 4
| #重新加载配置 systemctl daemon-reload #重启docker systemctl restart docker
|
(3)设置防火墙策略
1 2
| #只允许Portainer主机访问该主机的2375端口 sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.22.23/32" port protocol="tcp" port="2357" accept"
|
(4)点击Environment-related菜单中的Environments,点击Add environment按钮,添加Docker Standalone,如下图。
(5)选择API,填写名称和Docker Standalone实例的ip和端口(2375),点击Connect,连接成功后,点击Close,如下图。
方式二:使用agent容器管理Docker Standalone实例
(1)在其他实例环境上,部署agent容器进行连接,具体命令如下:
1 2 3 4 5 6 7
| 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.20.3
|
(2)设置防火墙策略
1 2
| #只允许Portainer主机访问该主机的9001端口 sudo firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.22.23/9001" port protocol="tcp" port="9001" accept"
|
连接成功后,在Home界面查看两种方式连接的Docker Standalone实例