Nginx代理Partainer的具體使用

主要目的用於通過nginx可以代理 Partainer服務,通過nginx進行統一轉發

1. 啟動nginx

啟動nginx,掛載整個nginx的配置路徑,具體的nginx配置可以百度

docker run -p 80:80 -name nginx --restart=always -v nginx/:/etc/nginx -d nginx

修改配置路徑下面的 conf.d/default.conf

upstream docker {
	// portainer 容器的名稱,如果不配置這個 nginx會 no resolver defined to resolve portainer 的問題
    server portainer:9000;
}
server {
	//追加下面的路徑,一定要使用正則進行匹配,因為portainer訪問時的重定向路徑會是 /docker/api/xxx/xxx 的路徑,所以,如果出現重定向的地址也需要進行匹配
	location ~ "^/docker(/?.*)" {
        proxy_pass http://docker$1$is_args$args;
        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;
    }
}

2. 啟動portainer

這裡隻需要開啟 9000端口,隻需要掛載宿主機中的docker文件到虛擬機中即可,掛載的數據卷可以百度

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

3. 創建網絡

如果需要容器之間通過容器名稱就可以進行訪問,那麼需要讓容器在同一個網絡當中,下面就是創建一個網絡使用 bridge 具體網絡類型區別也可以百度詳細

docker network create -d bridge nginx_network #創建網絡

將啟動的容器連接到網絡中,然後重啟兩個容器

docker network connect nginx_network portainer
docker network connect nginx_network nginx

可以進入 nginx容器中,通過 curl portainer:9000 查看能否請求到;訪問頁面

到此這篇關於Nginx代理Partainer的具體使用的文章就介紹到這瞭,更多相關Nginx代理Partainer內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: