Portainer 中文文檔:部署


Portainer 構建為可在 Docker 上運行,並且非常易於部署。除非另有說明,否則 Portainer 部署方案可以在任何平台上執行。

快速入門

如果您運行的是Linux,則部署Portainer的過程非常簡單:

$ docker volume create portainer_data
$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

現在,您現在可以通過訪問運行 Portainer 的服務器上的端口 9000 來使用 Portainer 。

在 Swarm 集群內部

在 Swarm 集群中部署 Portainer 之前,應確保正確配置 Docker 和 Swarm 。您可以參考 疑難解答 部分,以確保您已正確配置環境。

按照上述步驟,您已經准備好使用我們推薦的啟用代理的部署以在Swarm集群中部署 Portainer 。 注意:此設置將假定您正在 Swarm 管理器節點上執行以下指令。

$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy --compose-file=portainer-agent-stack.yml portainer

查看 代理 部分,以查找有關如何將現有 Portainer 實例連接到手動部署的 Portainer 代理的更多詳細信息。

持久化 Portainer 數據

默認情況下,Portainer 將其數據存儲在Linux上的 /data 文件夾下(在Windows上是 C:\\data)。

在重新啟動/升級 Portainer 容器之后,您需要保留 Portainer 數據以保留您的更改。您可以在 Linux 上使用綁定掛載來將數據持久保存在 Docker 主機文件夾中:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /path/on/host/data:/data portainer/portainer

Windows

Docker for Windows 10 支持運行 Linux 和 Windows 容器,並且您需要根據所使用的容器類型使用不同的啟動命令。Windows Server 僅支持本地 Windows 容器。

注意:在運行以下命令之前,必須創建要在其中保留數據的文件夾。例如,如果您希望數據保留在 C:\\ProgramData\Portainer 中,則需要在 C:\\ProgramData 中創建 Portainer 目錄,因為默認情況下該目錄不存在。

Linux容器示例:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v C:\ProgramData\Portainer:/data portainer/portainer

本地 Windows 容器示例:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -v C:\ProgramData\Portainer:C:\data portainer/portainer

Docker Swarm服務

如果你將為 Docker Swarm 服務部署 Portainer :

$ docker service create \
    --name portainer \
    --publish 9000:9000 \
    --publish 8000:8000 \
    --replicas=1 \
    --constraint 'node.role == manager' \
    --mount type=bind,src=//path/on/host/data,dst=/data \
    portainer/portainer

注意:Swarm 服務示例將為集群中的每個主機持久保存 Portainer 數據在 /path/on/host/data 中。如果將容器重新安排在另一個節點上,則現有的 Portainer 數據可能不可用。在 Swarm 集群的所有節點上持久存儲數據不在本文檔的討論范圍之內。

高級 Portainer 部署

高級 Portainer 部署方案。

聲明要在部署時進行管理的Docker環境

您可以通過 CLI 指定您希望 Portainer 管理的初始環境 ,使用該 -H 選項 tcp:// 協議連接到遠程 Docker 環境:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v portainer_data:/data portainer/portainer -H tcp://<REMOTE_HOST>:<REMOTE_PORT>

請確保使用要管理的 Docker 服務器的地址/端口替換 REMOTE_HOSTREMOTE_PORT

您還可以綁定安裝 Docker 套接字來管理本地 Docker 環境(僅在 Unix 套接字可用的環境中可用):

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer -H unix:///var/run/docker.sock

如果您的 Docker 環境受到 TLS 的保護,則需要確保您能夠訪問 CA ,用於訪問 Docker 引擎的證書和公鑰。

您可以通過 Portainer UI 上載所需的文件,也可以使用 CLI 上的 --tlsverify 選項。

Portainer 將嘗試使用以下路徑指向先前指定的文件(在Linux上,有關Windows的詳細信息,請參閱配置部分):

  • CA:/certs/ca.pem
  • 證書:/certs/cert.pem
  • 公鑰:/certs/key.pem

您必須確保這些文件在容器中使用 綁定安裝:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always  -v /path/to/certs:/certs -v portainer_data:/data portainer/portainer -H tcp://<DOCKER_HOST>:<DOCKER_PORT> --tlsverify

如果您想分別更改 CA 、證書和密鑰文件的默認路徑,也可以使用--tlscacert--tlscert--tlskey 選項:

$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer -v /path/to/certs:/certs portainer/portainer -H tcp://<DOCKER_HOST>:<DOCKER_PORT> --tlsverify --tlscacert /certs/myCa.pem --tlscert /certs/myCert.pem --tlskey /certs/myKey.pem
$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always  -v /path/to/certs:/certs -v portainer_data:/data portainer/portainer -H tcp://<DOCKER_HOST>:<DOCKER_PORT> --tlsverify --tlscacert /certs/myCa.pem --tlscert /certs/myCert.pem --tlskey /certs/myKey.pem

使用 SSL 保護 Portainer

默認情況下,Portainer 的 Web 界面和 API 通過 HTTP 公開。這是不安全的,建議在生產環境中啟用 SSL 。

要做到這一點,你可以使用下面的選項 --ssl--sslcert 以及 --sslkey

$ docker run -d -p 443:9000 -p 8000:8000 --name portainer --restart always -v ~/local-certs:/certs -v portainer_data:/data portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key

您可以使用以下命令來生成所需的文件:

$ openssl genrsa -out portainer.key 2048
$ openssl ecparam -genkey -name secp384r1 -out portainer.key
$ openssl req -new -x509 -sha256 -key portainer.key -out portainer.crt -days 3650

請注意,也可以使用 Certbot 生成證書和密鑰。但是,由於 Docker 在 符號鏈接 方面存在問題,因此,如果您使用 Certbot ,則將需要將“live”和“archive”目錄同時作為卷傳遞(如下所示)。

docker run -d -p 9000:9000 -p 8000:8000 \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v /root/portainer/data:/data \
        -v /etc/letsencrypt/live/<redacted>:/certs/live/<redacted>:ro \
        -v /etc/letsencrypt/archive/<redacted>:/certs/archive/<redacted>:ro \
        --name portainer \
        portainer/portainer:1.13.4 --ssl --sslcert /certs/live/<redacted>/cert.pem --sslkey /certs/live/<redacted>/privkey.pem

通過 docker-compose 部署 Portainer

您可以使用 docker-compose 部署Portainer。

這是一個示例 compose 文件:

version: '2'

services:
  portainer:
    image: portainer/portainer
    command: -H unix:///var/run/docker.sock
    restart: always
    ports:
      - 9000:9000
      - 8000:8000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:

單擊此處 下載撰寫文件。

無 docker 部署 Portainer

每個版本頁面上都提供 Portainer 二進制文件:Portainer版本

下載二進制文件並將其解壓縮到磁盤上的某個位置:

$ cd /opt
$ wget https://github.com/portainer/portainer/releases/download/1.23.2/portainer-1.23.2-linux-amd64.tar.gz
$ tar xvpfz portainer-1.23.2-linux-amd64.tar.gz

然后,只需使用 portainer 二進制文件,就像在 Docker 中使用 CLI 標志一樣即可。

注意:默認情況下,Portainer 會嘗試將其數據寫入 /data 文件夾。您必須首先確保此文件夾存在(或通過更改其使用的路徑 --data ,請參見下文)。

$ mkdir /data
$ cd /opt/portainer
$ ./portainer --template-file "${PWD}/templates.json"

您可以使用該 -p 選項在另一個端口上提供 Portainer :

$ ./portainer -p :8080

您可以更改 Portainer 用來存儲其數據的文件夾,使用 --data 選項:

$ ./portainer --data /opt/portainer-data

[譯自 Portainer 官方文檔:部署 ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM