n# 2014/09/02 安裝 CentOS 7python
CentOS 7 安裝完成後,網絡不能夠。CentOS 7 網絡配置和 6 有些不一樣。CentOS 7 虛擬機安裝完成後有一個隨機的網卡,在我這叫 ens35
。靜態 IP 沒有配置成功。簡單的啓用網絡的方式是使用默認的 DHCP 方式,只須要設置網卡配置文件 /etc/sysconfig/network-scripts/ifcfg-xxx
中的 ONBOOT=yes
,默認是 no。 以後配置 DNS,和 6 中同樣。web
在 CentOS 7 中,安裝 Docker 很是簡單,只須要執行 sudo yum install docker
便可spring
安裝完 Docker 以後,須要啓動 Docker 的服務 sudo service docker start
docker
設置開機自動啓動 sudo chkconfig docker on
centos
下載 CentOS 的鏡像 sudo docker pull centos
bash
而後就能夠啓動 Docker 容器,在其中執行命令了 sudo docker run -i -t centos /bin/bash
網絡
Docker 使用 Linux 的 cgroup 對資源進行隔離,對容器內的進程進行資源(CPU、內存、磁盤、網絡)限制,使用 namespace 對屬於同一個容器的進程分爲同一組。Docker 在這些 Linux 核心技術上面,對它們進行封裝,簡化它們的使用。app
根據 Docker 官網提供的教程,經過 Docker 啓動一個 Web 應用非常簡單和快速 sudo docker run -d -P training/webapp python app.py
webapp
固然,第一次運行是須要先下載鏡像的。spring-boot
在啓動一個 Docker 容器以後,咱們能夠查看這個容器的 IP 地址 sudo docker inspect -f '{{ .NetworkSettings.IPAddress }}' container_name
制定 -m 參數以後,top 沒法顯示被限制了的容器的內存大小
目標是編寫兩個示例程序,一個是 device,提供一個 REST 接口,傳入一個 device ID,返回帶有這個 ID 的設備名稱。另一個是 conference 模塊,調用 device 模塊。使用 Spring Boot 來實現。有段時間沒有用 Spring Boot 寫程序,有些生疏。記錄一下編寫這兩個簡單的不能再簡單的示例程序時遇到的坑
當你的構建過程須要引入第三方的類庫時,須要在以下代碼
buildscript { ext { springBootVersion = '1.1.5.RELEASE' } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } }
用 gradle build
而不是 gradle jar
初步演示了用 Docker 容器封裝一個 Java Web 應用,並在一個 Host OS 上快速啓動多個容器的能力。進一步演示目標:
這個特性的調研破費了一番周折,後來發現 CentOS 的 EPEL Repository 中的 Docker 的版本其實只有 0.11,而最新的則是 1.2.0。在換了新的 Binary 的最新的 Docker 以後,順利實現了容器之間以及和 Host 之間的目錄共享。
命令:docker run -i -t -v /host_dir:/container_dir centos /bin/bash
在實現容器和 Host 之間的目錄共享以後,數據的持久化也天然實現了。在容器中在共享目錄之上作的操做會天然而然的體如今 Host 中所對應的目錄之上。在容器被中止或銷燬以後,這個目錄上的文件仍是存在的。
容器集羣的管理是一個問題,雖然 Polycom 產品集羣的規模不可能達到互聯公司的規模,可是考慮到雲時代的到來。爲客戶提供 SaaS 形式的會議服務是能夠預見到的。在這種狀況下,Docker 容器集羣管理是須要考慮的一個技術。在這方面,已有的技術包括 Google 開源的 Kubernetes、Apache 的 Mesos 等。