Docker 學習筆記(第一集:認識docker)

chenggx發表於2020-08-30

docker 介紹

docker 這個東西應該做開發的應該都有聽說過,但是不知道大家有沒有詳細的瞭解過。反正我是屬於聽說過,大概知道是個什麼東西,能特別簡單的使用。但是一直沒有深入的學習過,今天在這裡我想把學習 docker 的過程記錄下來,方便日後查詢。

那麼下面開始啦。~

為啥要使用 docker

在我電腦上執行的是正常的啊?怎麼到了別人的電腦上就不能正常執行了呢?

如果你也碰到上面的問題了,那麼請你也開始 docker 的學習吧。這個時候有人會說為啥不用虛擬機器呢,因為虛擬機器是完全模擬一臺正常執行的。就算你只是需要執行一個 php 的環境,那麼系統預設的一些其他程式也是會啟動的,這樣就會降低我們電腦的利用率。還有一點就是虛擬機器一般是不能再生產環境中使用的。但是 docker 沒有問題。總而言之一句話,虛擬機器不好,我們要用 docker 。

docker 的用途

  1. 提供一次性的環境。比如,本地測試他人的軟體、持續整合的時候提供單元測試和構建的環境。

  2. 提供彈性的雲服務。因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容。

  3. 組建微服務架構。透過多個容器,一臺機器可以跑多個服務,因此在本機就可以模擬出微服務架構。

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.

... ...

上面命令的過程就是:

  1. 從 docker 的官方倉庫拉取 hello world image 檔案到本地

  2. 使用 image 檔案 生成 容器檔案

  3. 執行 hello world 容器 —> 輸出相關內容 —> 容器自動終止(有些容器不會自動終止,因為提供的是服務。比如,安裝執行 Ubuntu 的 image,就可以在命令列體驗 Ubuntu 系統。)

透過上面的例項大概知道了 docker 的是怎麼回事了。主要就是需要明白兩個檔案,image檔案和容器檔案。接下來我們製作一個 image 檔案,並透過該檔案生成容器並執行。

製作自己的 docker 容器

  1. 新建一個目錄

$ mkdir hello && cd hello
  1. 在目錄中新建 .dockerignore 檔案(該檔案類似於 git 專案中的 .gitignore 檔案)

  2. 在目錄中新建 Dockerfile 檔案,內容如下所示

  1. 執行命令,進行 image 的構建

$ docker build -t nginx:v1 .

看到如下內容則表示 image 構建成功。

  1. 透過 image 檔案生成容器檔案

$ docker run --name webserver -p 9527:80 nginx:v1
  1. 透過瀏覽器訪問 localhost:9527,如果可以看到如下內容則成功

一個簡單的容器就完成了。透過這個例子我們可以大概瞭解 docker 的配置,執行, 後面會深入 docker 相關的概念進行學習,並定下第一個計劃 ———— 配置一個屬於自己的 LNMP docker 測試環境。

程式設計師的藝術人生

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章