一、引言 記得上大三時,要給微機房電腦安裝系統,除了原生的操作系統外,還要另外安裝一些必要的開發軟體,如果每臺電腦都重新去安裝的話工作量就很大了,這個時候就使用了windows鏡像系統,我們將要安裝的軟體裝好打包成一個鏡像,其他電腦只要裝這個鏡像就可以了,這樣工作量就減少了很多。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容器。
-
對容器的啟動停止就是對軟體的啟動停止
三、
接下來我們來在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 鏡像操作
這裡的搜索其實是去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 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/