1. 程式人生 > >centos7之docker安裝

centos7之docker安裝

net開發 調試 net 左右 端口沖突 相關 通過 不能 util

下午四點左右,我準備接觸docker這個技術。之所以接觸它,原因來自tomcat服務器老是掛,也不能說老是掛,一周一次吧,或者不定時,最初出現的問題,分為這麽幾類?

一類,java代碼的問題,某個類導致線程阻塞導致內存泄露,使tomcat突然宕機和某個類找不到異常導致宕機;

二類,java運行環境內存不足,通過調tomcat內存解決該問題,不過這並不能解決這個問題,當然tomcat初始內存的確小,需求適當的調大,但是前提必須符合服務器的配置和內存;

三類,tomcat連接池和線程池的緣故,需要tomcat連接池和線程池優化,這一優化後,tomcat一天宕機或者三兩天宕機,最後變為一周或者兩周一次;

以上三類或許不是真正的原因,真正的原因我目前無法找到,真正的根源問題出在哪?我也不是十分明確。

針對解決這些問題,臨時的做法可以參考:

1.參考我的 Jmeter之tomcat性能測試+性能改進措施 這篇文章 解決連接池和線程池的問題;

2.通過使用shell,定時任務監控tomcat,如果檢測到宕機,就會自啟;

目前只想到這兩個。

不過回歸話題,之所以接觸docker,第一個是聽一位開發的朋友說,可以解決tomcat問題,第二個是學習docker

引用知乎一位朋友的話,他的名字叫劉允鵬:

Docker的思想來自於集裝箱,集裝箱解決了什麽問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被集裝箱標準化了,集裝箱和集裝箱之間不會互相影響。那麽我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在集裝箱裏封裝的好好的,那我就可以用一艘大船把他們都運走。

docker就是類似的理念。現在都流行雲計算了,雲計算就好比大貨輪。docker就是集裝箱。

1.不同的應用程序可能會有不同的應用環境,比如.net開發的網站和php開發的網站依賴的軟件就不一樣,如果把他們依賴的軟件都安裝在一個服務器上就要調試很久,而且很麻煩,還會造成一些沖突。比如IIS和Apache訪問端口沖突。這個時候你就要隔離.net開發的網站和php開發的網站。常規來講,我們可以在服務器上創建不同的虛擬機在不同的虛擬機上放置不同的應用,但是虛擬機開銷比較高。docker可以實現虛擬機隔離應用環境的功能,並且開銷比虛擬機小,小就意味著省錢了。

2.你開發軟件的時候用的是Ubuntu,但是運維管理的都是centos,運維在把你的軟件從開發環境轉移到生產環境的時候就會遇到一些Ubuntu轉centos的問題,比如:有個特殊版本的數據庫,只有Ubuntu支持,centos不支持,在轉移的過程當中運維就得想辦法解決這樣的問題。這時候要是有docker你就可以把開發環境直接封裝轉移給運維,運維直接部署你給他的docker就可以了。而且部署速度快。

3.在服務器負載方面,如果你單獨開一個虛擬機,那麽虛擬機會占用空閑內存的,docker部署的話,這些內存就會利用起來。

總之docker就是集裝箱原理。

談談安裝遇到的問題,主要是關於鏡像。

在我安裝的時候出現了不少錯誤,主要是關於鏡像問題
所以如果出現關於鏡像的問題,可以采取以下的措施解決:
(1)首先備份原來的鏡像
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

(2)獲取阿裏雲的鏡像並一移至到鏡像目錄下
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

安裝措施和流程如下所示:

前提:註意linux環境是centos7

安裝docker流程如下:

(1)安裝相關的依賴
yum install -y yum-utils device-mapper-persistent-data lvm2

(2)添加阿裏雲的docker鏡像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)將服務器的信息快速下載到本地緩存
yum makecache fast

(4)安裝docker
yum -y install docker-ce

(5)啟動docker
service docker start

(6)查看docker版本信息就和安裝jdk查看版本信息一樣
docker version

(7)開機自啟動
systemctl enable docker

關於docker後期學習,我會不定時跟大家分享的。

centos7之docker安裝