Docker部署Portainer

531 阅读3分钟

简介

注意Docker的版本要低于26.x版本,最高使用25.x版本

Portainer是一个开源的Docker管理工具,提供了一个用户友好的Web界面,用于管理Docker环境。通过Portainer,您可以轻松地管理Docker容器、镜像、网络和卷等资源。在本文中,我们将介绍如何使用Docker Compose部署Portainer,并详细解释整个过程。

先决条件

在开始之前,请确保您的系统满足以下要求:

  • 已安装Docker Engine
  • 已安装Docker Compose

创建docker-compose.yaml文件

首先,我们需要创建一个docker-compose.yaml文件,用于定义Portainer服务的配置。以下是文件的内容:

version: '3'

services:
  portainer:
    image: portainer/portainer
    container_name: portainer
    restart: always
    ports:
      - "8001:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - data:/data

volumes:
  data:

让我们详细解释一下这个文件的各个部分:

  • version: '3':指定Docker Compose文件的版本为3。
  • services:定义要运行的服务。在这里,我们只有一个名为portainer的服务。
  • image: portainer/portainer:指定要使用的Docker镜像为portainer/portainer,这是Portainer的官方镜像。
  • container_name: portainer:指定容器的名称为portainer
  • restart: always:设置容器的重启策略为always,表示容器总是自动重启,即使在Docker守护进程重启后也会自动启动。
  • ports:定义端口映射。将主机的8001端口映射到容器的9000端口,这样我们就可以通过访问主机的8001端口来访问Portainer的Web界面。
  • volumes:定义卷的映射。
    • /var/run/docker.sock:/var/run/docker.sock:将主机的Docker套接字映射到容器中,以便Portainer可以与Docker守护进程通信并管理Docker资源。
    • data:/data:将名为data的卷映射到容器的/data目录,用于持久化Portainer的数据,即使容器被删除,数据也不会丢失。
  • volumes::在文件的最后,我们定义了一个名为data的卷,用于存储Portainer的持久化数据。

部署Portainer

创建完docker-compose.yaml文件后,我们可以使用以下命令来部署Portainer:

docker-compose up -d

这个命令会读取docker-compose.yaml文件,并根据文件中的定义启动Portainer服务。-d参数表示在后台运行容器。

当命令执行完毕后,Portainer服务就已经启动并运行了。您可以通过访问http://localhost:8001来打开Portainer的Web界面。

初始化Portainer

第一次访问Portainer的Web界面时,您需要进行一些初始化设置。

  1. 设置管理员用户名和密码。
  2. 选择要管理的Docker环境。Portainer支持管理本地Docker环境和远程Docker环境。在这里,我们选择"Local",表示管理本地的Docker环境。
  3. 点击"Connect"按钮,Portainer就会连接到本地的Docker守护进程,并显示仪表板界面。

现在,您可以通过Portainer的Web界面来管理Docker容器、镜像、网络和卷等资源了。

结论

在本文中,我们介绍了如何使用Docker Compose部署Portainer。通过创建一个docker-compose.yaml文件,我们定义了Portainer服务的配置,包括使用的镜像、端口映射、卷映射等。然后,我们使用docker-compose up -d命令来启动Portainer服务,并通过Web界面进行初始化设置。

使用Docker Compose部署Portainer非常方便,只需要一个配置文件和一个命令就可以完成部署。这种方式比手动运行Docker命令更加简洁和可维护。

希望本文对您使用Docker Compose部署Portainer有所帮助。如果您有任何问题或建议,欢迎留言交流。