Portainer是一个轻量级管理UI,允许您轻松管理不同的Docker环境(Docker主机或群集群)。它意味着尽可能简单地部署。它由一个可以在任何Docker引擎上运行的单个容器(可以部署为Linux容器或Windows本机容器)。 Portainer允许您管理您的Docker容器,图像,卷,网络等!

1.在CentOS / Ubuntu安装
1.1 CentOS 7 / Debian 9

这是将Docker安装到CentOS / Debian系统中的最简单方法。它只是一个命令:


curl -sSL //get.docker.com/ | sh

启动Docker服务并在系统启动时启用它

sudo -i

systemctl start docker.service
systemctl enable docker.service

创建专用于Portainer的卷's data storage:

docker volume create portainer_data

使用docker命令运行portainer容器:

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

1.2 Ubuntu.
系统更新


sudo apt update
sudo apt upgrade

将Docker安装到Ubuntu中:


sudo apt install docker.io -y

启动Docker服务并在系统启动时启用它

sudo -i

systemctl start docker
systemctl enable docker

docker version

创建专用于Portainer的卷's data storage:

docker volume create portainer_data

使用docker命令运行portainer容器:

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

docker ps

2.登录Portainer Web Gui
使用浏览器访问URL http://<您的LinuxServer的公共IP>:9000
第一次,它会要求您设置管理员用户's password.

由于Portainer部署在本地计算机上,我们从本地管理它,我们将选择“本地连接”。

现在它是portainer's home page.

您可以从以下屏幕截图中看到,已部署Portainer容器。

3.部署WordPress应用程序容器

3.1部署nginx.

单击按钮"+Add container"并输入nginx容器的以下信息。

您可以使用浏览器访问虚拟机'S公共IP确认nginx正在运行。

3.2部署MySQL DB - MariaDB

需要添加两个环境变量。

MYSQL_ROOT_PASSWORD
MYSQL_DATABASE

另外不要忘记更改重启策略以始终确保您的容器生存系统重新启动。

3.3部署WordPress

或者,您可以部署WordPress堆栈同时添加WordPress和MySQL,这是我更喜欢的方式。

3.4配置nginx反向代理

apt -y update
apt -y install nano
创建Wordperss nginx配置文件:
nano /etc/nginx/conf.d/wordpress.conf
将以下配置复制到文件中:(确保将端口80,server_name和proxy_pass更改为您自己的配置)
server {
    listen       80;
    server_name  www.51sec.org 51sec.org;

location / {
    proxy_pass       http://3.45.23.194:20000;
    proxy_redirect             off;
    proxy_http_version         1.1;
    proxy_set_header Upgrade   $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

一旦保存了CONF文件,重新启动nginx服务以应用新配置。

/etc/init.d/nginx restart

命令/etc/init.d/nginx重启有一个错误。尽管重新启动过程已完成,但重新启动的nginx状态不会更改。

3.5配置nginx要负载平衡
如果您有多个站点,则可以在多个服务器之间配置Nginx来加载平衡。
您需要改变两个文件:

[email protected]:/# cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {  upstream mysec {
ip_hash;
    server 3.81.70.239:30000 weight=3;
    server 34.73.78.142:80 weight=2;
  }

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
[email protected]:/#

[email protected]:/# cat /etc/nginx/conf.d/wordpress.conf
server {
    listen       80;
    server_name  www.51sec.org;

location / {
    proxy_pass       http://mysec;
    proxy_redirect             off;
    proxy_http_version         1.1;
    proxy_set_header Upgrade   $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
}
}
[email protected]:/#
另一个简单的nginx负载平衡配置

http {
  upstream project1 {
    server 127.0.0.1:8000 weight=3;
    server 127.0.0.1:8001 weitht=2;
    server 127.0.0.1:8002;
  }

  server {
    listen 80;
    server_name www.51sec.org;
    location / {
      proxy_pass http://project1;
    }
  }
}

相关YouTube视频:

参考:

经过 jonny.

发表评论