記得上大三時,要給微機房電腦安裝系統,除了原生的操做系統外,還要另外安裝一些必要的開發軟件,若是每臺電腦都從新去安裝的話工做量就很大了,這個時候就使用了windows鏡像系統,咱們將要安裝的軟件裝好打包成一個鏡像,其餘電腦只要裝這個鏡像就能夠了,這樣工做量就減小了不少。Docker跟這個鏡像並非一回事,可是思想是相同的。mysql
咱們在一臺服務器中下載、安裝、配置好Mysql,在另一臺服務器中又得從新下載、安裝、配置,這樣很麻煩也容易出現一些錯誤。sql
這個時候Docker就派上用場了,咱們能夠將安裝配置好的軟件打包成一個鏡像,而後其餘的服務器中只要安裝了Docker,就能夠運行鏡像,運行成功後的鏡像咱們稱爲容器,每一個容器之間使用了沙箱隔離機制,這就是Docker的做用。docker
Docker是一個開源的應用容器引擎,基於 Go 語言 並聽從Apache2.0協議開源。Docker是一個輕量級容器技術,它不是一個虛擬機技術,卻實現了虛擬機技術的資源隔離,並且他的性能要比虛擬機技術高。windows
Docker支持將軟件編譯成一個鏡像;而後在鏡像中各類軟件作好配置,將鏡像發佈出去,其餘使用者能夠直接使用這個鏡像。運行中的這個鏡像稱爲容器,容器啓動是很是快速的。相似windows裏面的ghost操做系統,安裝好後什麼都有了。tomcat
先學習幾個核心概念服務器
主機(Host):安裝了Docker程序的機器(Docker直接安裝在操做系統之上)。性能
客戶端(Client):鏈接docker主機進行操做。學習
倉庫(Registry):用來保存各類打包好的軟件鏡像(包括公共倉庫和私有倉庫)。阿里雲
鏡像(Images):軟件打包好的鏡像,放在docker倉庫中。spa
容器(Container):鏡像啓動後的實例稱爲一個容器,容器是獨立運行的一個或一組應用。
咱們使用Docker只須要按照如下步驟:
安裝Docker。
去Docker倉庫找到這個軟件對應的鏡像。
使用Docker運行這個鏡像,這個鏡像就會生成一個Docker容器。
對容器的啓動中止就是對軟件的啓動中止
接下來咱們來在Linux安裝Docker,首先咱們必須先安裝好Linux虛擬機,這個在此不贅述了,咱們直接從安裝Docker開始,
首先咱們要檢查內核版本,命令爲:uname -r,必須是3.10及以上,而後就按照步驟進行安裝:
安裝: yum install docker 中間有一個確認操做,按y肯定
啓動:systemctl start docker。
查看版本:docker -v。
設置開機啓動:systemctl enable docker。
關閉:systemctl stop docker。
通常正常安裝不會有問題,若有問題,百度一下也能解決。
這裏的搜索實際上是去https://hub.docker.com/ 中進行搜索,咱們也能夠去這裏直接進行搜索。
拉取:docker pull 鏡像名:tag (:tag是可選的,tag表示標籤,多爲軟件的版本,默認是latest) 搜索完成以後,咱們能夠對咱們想要的鏡像進行拉取,例:docker pull mysql
以前沒使用國內鏡像加速,下載了半個小時還沒完成,建議使用鏡像加速器,我使用的是阿里雲的,直接註冊後,按照教程使用便可https://cr.console.aliyun.com/。
列表:docker images 安裝完成以後使用命令 查看已下載的鏡像
4.刪除:docker rmi image-id 刪除不要的鏡像,image-id 對應相關鏡像ID
鏡像下載成功後,咱們能夠開始進行容器操做,爲了方便演示,咱們再下載tomcat的鏡像:docker pull tomcat
下面咱們對容器進行操做:
運行: docker run --name container-name -d image-name 其中name 參數是咱們自定義容器名 -d 指後臺運行,image-name 是鏡像名稱,例:docker run --name mytomcat -d tomcat:late
2. 查看運行鏡像列表:docker ps ,運行成功後面能夠經過命令查看,這個命令只查看正在運行的容器
查看全部鏡像列表:docker ps -a
刪除鏡像:docker rm 容器的id 例:docker rm 43e2182aceec
啓動一個作了端口映射的tomcat: 啓動的總體命令相同,須要加上一個 -p: 將主機的端口映射到容器的一個端口 主機端口:容器內部的端口,例:docker run --name mytomcat -d -p 8888:8080 tomcat:latest ,這個時候咱們將主機的端口號與容器端口映射,這樣才能在外部直接訪問。
8. 查看容器日誌:docker logs 容器的id 例:docker logs fc5b1c7c31bb
這是一些基礎命令,想要學習更多的命令請訪問:https://docs.docker.com/engine/reference/commandline/docker/