SpringBoot之旅第七篇-Docker
一、引言
記得上大三時,要給微機房電腦安裝系統,除了原生的作業系統外,還要另外安裝一些必要的開發軟體,如果每臺電腦都重新去安裝的話工作量就很大了,這個時候就使用了windows映象系統,我們將要安裝的軟體裝好打包成一個映象,其他電腦只要裝這個映象就可以了,這樣工作量就減少了很多。Docker跟這個映象並不是一回事,但是思想是相同的。
我們在一臺伺服器中下載、安裝、配置好Mysql,在另外一臺伺服器中又得重新下載、安裝、配置,這樣很麻煩也容易出現一些錯誤。
這個時候Docker就派上用場了,我們可以將安裝配置好的軟體打包成一個映象,然後其他的伺服器中只要安裝了Docker,就可以執行映象,執行成功後的映象我們稱為容器,每個容器之間使用了沙箱隔離機制,這就是Docker的作用。
Docker是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。Docker是一個輕量級容器技術,它不是一個虛擬機器技術,卻實現了虛擬機器技術的資源隔離,而且他的效能要比虛擬機器技術高。
Docker支援將軟體編譯成一個映象;然後在映象中各種軟體做好配置,將映象釋出出去,其他使用者可以直接使用這個映象。執行中的這個映象稱為容器,容器啟動是非常快速的。類似windows裡面的ghost作業系統,安裝好後什麼都有了。
二、 核心概念
先學習幾個核心概念
-
主機(Host):安裝了Docker程式的機器(Docker直接安裝在作業系統之上)。
-
客戶端(Client):連線docker主機進行操作。
-
倉庫(Registry):用來儲存各種打包好的軟體映象(包括公共倉庫和私有倉庫)。
-
映象(Images):軟體打包好的映象,放在docker倉庫中。
-
容器(Container):映象啟動後的例項稱為一個容器,容器是獨立執行的一個或一組應用。
我們使用Docker只需要按照以下步驟:
-
安裝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。
一般正常安裝不會有問題,如有問題,百度一下也能解決。
四、 常用操作
安裝完成之後我們來學習下常用的操作
4.1 映象操作
-
檢索:docker search 關鍵字,例:docker search mysql
這裡的搜尋其實是去 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
4.2 容器操作
映象下載成功後,我們可以開始進行容器操作,為了方便演示,我們再下載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 stop 容器的id ,例:docker stop 43e2182aceec
-
檢視所有映象列表:docker ps -a
-
啟動映象:docker start 容器的id 例:docker start 43e2182aceec
-
刪除映象: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/