1. 程式人生 > >docker容器管理(使用rancher)

docker容器管理(使用rancher)

docker可以很快速的建立一個生產環境。但是在複雜的生產環境中,運維開發者都使用docker的一些基本命令比如docker exec、docker log、docker attach、docker ps等命令來維護所有的生產環境,其實也是很麻煩的事情。如果生產環境有成千上萬個,你們維護生產環境的工作量也會是非常的巨大的。這裡來介紹一下使用rancher管理docker容器。
一、介紹下rancher
Rancher 是以在生產環境中執行容器為目標而構建的開源軟體平臺。隨著 Docker 容器這種型別的應用工作負載的逐漸流行,它催生了很多與之相應的基礎架構服務,如網路服務、儲存服務、負載均衡,安全,服務發現和資源管理。-

二、在不能翻牆情況下獲取rancher
在rancher的很多安裝方法介紹中,預設都是可以翻牆下載的。但是本人由於翻不了牆,只能到各種docker映象伺服器中找。筆者在網易蜂巢有個映象庫,所以在網易蜂巢那找,發現使用docker pull拉映象到本地的時候經常會失敗。所以就到阿里雲那邊找,發現rancher在阿里雲那邊有放好幾個版本的映象庫。所以,如果翻不了牆的話就到阿里雲上找對應版本的映象就可以了。不過有一點需要注意的是,rancher在阿里雲放的映象一般是穩定版本的。想要獲取最新版本的映象還是需要翻牆取的。

三、rancher基本使用方法:

1、部署docker環境:
由於要用rancher來管理docker容器,那麼就需要環境上有docker。還有就是 Linux 主機的記憶體至少1GB。

2、獲取rancher/server映象
可以翻牆的話,最直接的就是執行下面命令:

docker pull rancher/server

不過,最好要選對應的版本,否則獲取的映象為rancher/server:latest。rancher的版本中2.0大版本後的是基於k8s開發的,2.0以前是基於docker開發的,會存在一些差異。
如果不能翻牆,就到阿里雲那選取增加要獲取的版本pull到本地。以下是筆者從阿里雲獲取rancher的操作:

[email protected] MINGW64 ~
$ docker pull registry.cn-hangzhou.aliyuncs
.com/ranchers/server:v1.6.5 v1.6.5: Pulling from ranchers/server 6599cadaf950: Pull complete 23eda618d451: Pull complete f0be3084efe9: Pull complete 52de432f084b: Pull complete a3ed95caeb02: Pull complete e75cd91a1dc5: Pull complete 997f1b48f59f: Pull complete 313c28fb4e37: Pull complete 2a0730d1275c: Pull complete 8848fbebd2c8: Pull complete 906504ea9ea6: Pull complete 9329940f8e65: Pull complete e849debd7945: Pull complete 4883bd135dd2: Pull complete 605c6a0fe940: Pull complete 274bc004c933: Pull complete e574b973aaa1: Pull complete 08cb1e411b87: Pull complete 4af3b5b17b6e: Pull complete Digest: sha256:429d0a5bb7ba989b3b8cf07dcba0ed75d56823fa73b72056d773d91e427419d2 Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/ranchers/server:v1.6.5

3、執行rancher/server
執行rancher/server命令為:

docker run -d --restart=always -p 8080:8080 rancher/server

其中對應的容器tag,需要根據實際情況做對應的修改。比如我這邊從阿里雲pull的映象後將tag修改為rancher/server:v1.6.5,那麼執行的命令為:

docker run -d --restart=always -p 8080:8080 rancher/server:v1.6.5

執行容器後通過主機對應的ip加上8080就可以訪問rancher的管理頁面。

4、執行rancher/agent
開啟rancher管理頁面後點擊”INFRASTRUCTRUE”按鈕中的”HOST”,然後再加一個主機,使用預設安裝的話複製第五個步驟中的docker run命令到主機上執行。比如筆者環境中對應的命令如下:

sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.5 http://192.168.99.100:8080/v1/scripts/32FE04AC1ABC88F0F471:1483142400000:iLqghwnOYJVKTTMPq9XCrxEqfM

從命令可以看出和rancher/server:v1.6.5匹配的rancher/agent為v1.2.5。如果可以翻牆的話直接在主機上執行即可,docker會下載缺失的映象包,如果不能翻牆的話,就需要到阿里雲pull一個和命令中相對應的rancher/agent版本的映象後再執行docker run命令。

5、使用rancher管理頁面管理環境中的所有容器:
執行rancher/agent容器後,到rancher管理頁面中“INFRASTRUCTURE”->“Containers”對應的頁面中可以看到所有容器。可以所有容器進行統一管理:
這裡寫圖片描述

相關推薦

docker容器管理使用rancher

docker可以很快速的建立一個生產環境。但是在複雜的生產環境中,運維開發者都使用docker的一些基本命令比如docker exec、docker log、docker attach、docker ps等命令來維護所有的生產環境,其實也是很麻煩的事情。如果生產

volume 生命周期管理 - 每天5分鐘玩轉 Docker 容器技術44

docker 教程 容器 Data Volume 中存放的是重要的應用數據,如何管理 volume 對應用至關重要。前面我們主要關註的是 volume 的創建、共享和使用,本節將討論如何備份、恢復、遷移和銷毀 volume。備份因為 volume 實際上是 host 文件系統中的目錄和文件,所以

日誌管理Docker logs - 每天5分鐘玩轉 Docker 容器技術87

docker 容器 教程 高效的監控和日誌管理對保持生產系統持續穩定地運行以及排查問題至關重要。在微服務架構中,由於容器的數量眾多以及快速變化的特性使得記錄日誌和監控變得越來越重要。考慮到容器短暫和不固定的生命周期,當我們需要 debug 問題時有些容器可能已經不存在了。因此,一套集中式的日誌管理

用 k8s 管理機密信息 - 每天5分鐘玩轉 Docker 容器技術155

Kubernetes Docker 容器 教程 應用啟動過程中可能需要一些敏感信息,比如訪問數據庫的用戶名密碼或者秘鑰。將這些信息直接保存在容器鏡像中顯然不妥,Kubernetes 提供的解決方案是 Secret。Secret 會以密文的方式存儲數據,避免了直接在配置文件中保存敏感信息。Sec

用 ConfigMap 管理配置 - 每天5分鐘玩轉 Docker 容器技術159

Kubernetes Docker 容器 教程 Secret 可以為 Pod 提供密碼、Token、私鑰等敏感數據;對於一些非敏感數據,比如應用的配置信息,則可以用 ConfigMap。ConfigMap 的創建和使用方式與 Secret 非常類似,主要的不同是數據以明文的形式存放。與 Sec

調試 Dockerfile - 每天5分鐘玩轉 Docker 容器技術15

top add font tom middle 程序 ria family 是個 包括 Dockerfile 在內的任何腳本和程序都會出錯。有錯並不可怕,但必須有辦法排查,所以本節討論如何 debug Dockerfile。 先回顧一下通過 Dockerfile 構建鏡像

Dockerfile 常用指令 - 每天5分鐘玩轉 Docker 容器技術16

依次 官方文檔 構建 bottom str -s 暴露 工作 12px 是時候系統學習 Dockerfile 了。下面列出了 Dockerfile 中最常用的指令,完整列表和說明可參看官方文檔。 FROM指定 base 鏡像。 MAINTAINER設置鏡像的作

RUN vs CMD vs ENTRYPOINT - 每天5分鐘玩轉 Docker 容器技術17

docker 教程 容器 RUN、CMD 和 ENTRYPOINT 這三個 Dockerfile 指令看上去很類似很容易混淆。本節將通過實踐詳細討論它們的區別。簡單的說RUN 執行命令並創建新的鏡像層RUN 經常用於安裝軟件包。CMD 設置容器啟動後默認執行的命令及其參數但 CMD 能夠被 doc

使用公共 Registry - 每天5分鐘玩轉 Docker 容器技術19

docker 教程 容器 保存和分發鏡像的最直接方法就是使用 Docker Hub。Docker Hub 是 Docker 公司維護的公共 Registry。用戶可以將自己的鏡像保存到 Docker Hub 免費的 repository 中。如果不希望別人訪問自己的鏡像,也可以購買私有 repos

Docker 鏡像小結 - 每天5分鐘玩轉 Docker 容器技術21

列表 例如 normal one sys tro docker comm color 本節我們對 Docker 鏡像做個小結。 這一部分我們首先討論了鏡像的分層結構,然後學習了如何構建鏡像,最後實踐使用 Docker Hub 和本地 registry。 下面是鏡像的常用操作

如何運行容器?- 每天5分鐘玩轉 Docker 容器技術22

docker 教程 容器 上一章我們學習了如何構建 Docker 鏡像,並通過鏡像運行容器。本章將深入討論容器:學習容器的各種操作,容器各種狀態之間如何轉換,以及實現容器的底層技術。運行容器docker run 是啟動容器的方法。在討論 Dockerfile 時我們已經學習到,可用三種方式指定容器

兩種進入容器的方法 - 每天5分鐘玩轉 Docker 容器技術23

工作 技術 啟動進程 gin attach ant while col -c 我們經常需要進到容器裏去做一些工作,比如查看日誌、調試、啟動其他進程等。有兩種方法進入容器:attach 和 exec。 docker attach 通過 docker attach 可以 a

運行容器的最佳實踐 - 每天5分鐘玩轉 Docker 容器技術24

oat add vertical poi can size 執行命令 後臺 運行 按用途容器大致可分為兩類:服務類容器和工具類的容器。 1. 服務類容器以 daemon 的形式運行,對外提供服務。比如 web server,數據庫等。通過 -d 以後臺方式啟動這類容器是非常

容器常用操作 - 每天5分鐘玩轉 Docker 容器技術25

技術 order position 自動 code lec 資源 add 服務 前面討論了如何運行容器,本節學習容器的其他常用操作。 stop/start/restart 容器 通過 docker stop 可以停止運行的容器。 容器在 docker host 中實際上是

限制容器對內存的使用 - 每天5分鐘玩轉 Docker 容器技術27

upload 機制 性能 http tle war pac 啟動 物理內存 一個 docker host 上會運行若幹容器,每個容器都需要 CPU、內存和 IO 資源。對於 KVM,VMware 等虛擬化技術,用戶可以控制分配多少 CPU、內存資源給每個虛擬機。對於容器,D

限制容器對CPU的使用 - 每天5分鐘玩轉 Docker 容器技術28

docker 教程 容器 上節學習了如何限制容器對內存的使用,本節我們來看CPU。默認設置下,所有容器可以平等地使用 host CPU 資源並且沒有限制。Docker 可以通過 -c 或 --cpu-shares 設置容器使用 CPU 的權重。如果不指定,默認值為 1024。與內存限額不同,通過

限制容器的 Block IO - 每天5分鐘玩轉 Docker 容器技術29

docker 教程 容器 前面學習了如何限制容器對內存和CPU的使用,本節我們來看 Block IO。Block IO 是另一種可以限制容器使用的資源。Block IO 指的是磁盤的讀寫,docker 可通過設置權重、限制 bps 和 iops 的方式控制容器讀寫磁盤的帶寬,下面分別討論。註:目前

實現容器的底層技術 - 每天5分鐘玩轉 Docker 容器技術30

docker 教程 容器 為了更好地理解容器的特性,本節我們將討論容器的底層實現技術。cgroup 和 namespace 是最重要的兩種技術。cgroup 實現資源限額, namespace 實現資源隔離。cgroupcgroup 全稱 Control Group。Linux 操作系統通過 cg

none 和 host 網絡的適用場景 - 每天5分鐘玩轉 Docker 容器技術31

docker 教程 容器 本章開始討論 Docker 網絡。我們會首先學習 Docker 提供的幾種原生網絡,以及如何創建自定義網絡。然後探討容器之間如何通信,以及容器與外界如何交互。Docker 網絡從覆蓋範圍可分為單個 host 上的容器網絡和跨多個 host 的網絡,本章重點討論前一種。對於

容器必須懂 bridge 網絡 - 每天5分鐘玩轉 Docker 容器技術32

docker 教程 容器 上一節我們討論了 none 和 host 類型的容器網絡,本節學習應用最廣泛也是默認的 bridge 網絡。Docker 安裝時會創建一個 命名為 docker0 的 linux bridge。如果不指定--network,創建的容器默認都會掛到 docker0 上。當前