docker 介紹
docker 這個東西應該做開發的應該都有聽說過,但是不知道大家有沒有詳細的瞭解過。反正我是屬於聽說過,大概知道是個什麼東西,能特別簡單的使用。但是一直沒有深入的學習過,今天在這裡我想把學習 docker 的過程記錄下來,方便日後查詢。
那麼下面開始啦。~
為啥要使用 docker
在我電腦上執行的是正常的啊?怎麼到了別人的電腦上就不能正常執行了呢?
如果你也碰到上面的問題了,那麼請你也開始 docker 的學習吧。這個時候有人會說為啥不用虛擬機器呢,因為虛擬機器是完全模擬一臺正常執行的。就算你只是需要執行一個 php 的環境,那麼系統預設的一些其他程式也是會啟動的,這樣就會降低我們電腦的利用率。還有一點就是虛擬機器一般是不能再生產環境中使用的。但是 docker 沒有問題。總而言之一句話,虛擬機器不好,我們要用 docker 。
docker 的用途
提供一次性的環境。比如,本地測試他人的軟體、持續整合的時候提供單元測試和構建的環境。
提供彈性的雲服務。因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容。
組建微服務架構。透過多個容器,一臺機器可以跑多個服務,因此在本機就可以模擬出微服務架構。
docker 的安裝
docker 分為社群版(CE)、企業版本(EE)
win 和 mac 安裝很簡單,就是正常的安裝軟體的方法,而用能用 linux 系統的,相信你也有辦法找到安裝的方法的。
安裝完成之後使用如下命令驗證是否安裝成功
$ docker version
# 或者
$ docker info
Docker 需要使用者具有 sudo 許可權,為了避免每次命令都輸入sudo,可以把使用者加入 Docker 使用者組
$ sudo usermod -aG docker $USER
使用如下命令啟動 docker
# service 命令的用法
$ sudo service docker start
# systemctl 命令的用法
$ sudo systemctl start docker
第一個例項 hello world
$ docker container run hello-world
如果執行成功,你會在螢幕上讀到下面的輸出。
$ docker container run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
... ...
上面命令的過程就是:
從 docker 的官方倉庫拉取 hello world image 檔案到本地
使用 image 檔案 生成 容器檔案
執行 hello world 容器 —> 輸出相關內容 —> 容器自動終止(有些容器不會自動終止,因為提供的是服務。比如,安裝執行 Ubuntu 的 image,就可以在命令列體驗 Ubuntu 系統。)
透過上面的例項大概知道了 docker 的是怎麼回事了。主要就是需要明白兩個檔案,image檔案和容器檔案。接下來我們製作一個 image 檔案,並透過該檔案生成容器並執行。
製作自己的 docker 容器
- 新建一個目錄
$ mkdir hello && cd hello
在目錄中新建 .dockerignore 檔案(該檔案類似於 git 專案中的 .gitignore 檔案)
在目錄中新建 Dockerfile 檔案,內容如下所示
- 執行命令,進行 image 的構建
$ docker build -t nginx:v1 .
看到如下內容則表示 image 構建成功。
- 透過 image 檔案生成容器檔案
$ docker run --name webserver -p 9527:80 nginx:v1
- 透過瀏覽器訪問 localhost:9527,如果可以看到如下內容則成功
一個簡單的容器就完成了。透過這個例子我們可以大概瞭解 docker 的配置,執行, 後面會深入 docker 相關的概念進行學習,並定下第一個計劃 ———— 配置一個屬於自己的 LNMP docker 測試環境。
本作品採用《CC 協議》,轉載必須註明作者和本文連結