Portainer: Docker容器管理利器

Portainer: Docker容器管理利器

简介

Portainer是一款轻量级的Docker容器管理UI,通过web界面即可轻松管理Docker主机和容器。无需编写冗长的Docker命令,只需点击鼠标,即可实现容器的启动、停止、删除等操作。Portainer支持多个Docker主机,可以同时管理多台Docker主机上的容器。

安装

前提条件

  • 安装Docker
  • 安装Docker Compose

使用Docker Compose安装Portainer

  1. 创建docker-compose.yml文件,内容如下:
yaml 复制代码
version: '3'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    restart: always
    ports:
      - 9000:9000
      - 8000:8000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:
  1. 启动Portainer容器

在docker-compose.yml文件所在目录下,执行以下命令:

bash 复制代码
docker-compose up -d

等待容器启动完成后,访问http://localhost:9000即可打开Portainer界面。

配置

首次登录Portainer需要设置管理员密码。设置完密码后,选择"Local"环境,即可开始管理本地Docker主机。

如果需要管理远程Docker主机,可以通过添加Endpoint的方式进行配置。点击"Endpoints",选择"Add endpoint",填写远程主机的地址、端口号等信息即可。

管理镜像

在Portainer界面中,点击"Images"即可查看本地镜像列表。可以对镜像进行删除、标记、推送等操作。

如果要从Docker Hub中拉取镜像,点击"Registries",选择"DockerHub",输入要拉取的镜像名称和标签,即可将镜像拉取到本地。

管理容器

在Portainer界面中,点击"Containers"即可查看本地容器列表。可以对容器进行启动、停止、删除、重启等操作。

如果要创建新的容器,点击"Add container",填写容器名称、镜像、端口映射、挂载卷等信息,即可创建新的容器。

避免端口冲突

在创建容器时,需要指定容器的端口映射。如果多个容器映射到同一个宿主机端口,就会出现端口冲突,导致容器无法启动。

为了避免端口冲突,可以采取以下措施:

  1. 为每个容器分配独立的宿主机端口。例如,容器A映射到宿主机的8080端口,容器B映射到宿主机的8081端口。

  2. 使用Docker网络,为每个容器分配独立的IP地址和端口。例如,创建一个名为mynetwork的网络:

bash 复制代码
docker network create mynetwork

然后在创建容器时,指定使用mynetwork网络,并设置容器的IP地址和端口:

bash 复制代码
docker run -d --name container-a --network mynetwork --ip 172.18.0.2 -p 8080:80 nginx
docker run -d --name container-b --network mynetwork --ip 172.18.0.3 -p 8080:80 nginx

这样,容器A和容器B就可以使用相同的端口号,而不会出现冲突。

总结

Portainer是一款非常实用的Docker容器管理工具,可以大大简化Docker容器的管理和维护工作。通过web界面,可以轻松实现容器的创建、启动、停止、删除等操作,同时还可以管理镜像和网络。在使用Portainer时,需要注意避免端口冲突,可以采用分配独立端口或使用Docker网络的方式来解决。

相关推荐
金刚猿3 小时前
01_虚拟机中间件部署_root 用户安装 docker 容器,配置非root用户权限
docker·中间件·容器
JH_Kong3 小时前
解决 WSL 中 Docker 权限问题:从踩坑到完整修复
docker·容器
忆~遂愿4 小时前
GE 引擎与算子版本控制:确保前向兼容性与图重写策略的稳定性
大数据·开发语言·docker
陈桴浮海5 小时前
Kustomize实战:从0到1实现K8s多环境配置管理与资源部署
云原生·容器·kubernetes
70asunflower7 小时前
Emulation,Simulation,Virtualization,Imitation 的区别?
linux·docker
ShiLiu_mtx8 小时前
k8s - 7
云原生·容器·kubernetes
春日见8 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
xuhe28 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
星火s漫天9 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
MonkeyKing_sunyuhua11 小时前
docker compose up -d --build 完全使用新代码打包的方法
docker·容器·eureka