iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0

為什麼需要容器化技術

當我們在不同電腦安裝環境時,也就是安裝 Nginx、PHP、MySQL 時,時常會遇到一個問題,在不同電腦會裝到不同的版本,這也導致了在測試環境正常運作的程式,放到正式環境卻發生錯誤

如果有了 Docker 我們就能確保在不同電腦中的環境一致性,這樣就不會再出現像「我在測試站測很正常阿,你正式站炸掉不是我的問題吧」這樣的常見問題

另一個使用 Docker 的情況,如果想在同一台電腦上開發或部屬需要不同環境的專案,就必須不斷地進行環境切換,這事件非常煩人的事,有了 Docker 我們就可以輕鬆的隔離每個專案的環境,使開發或更加的方便快速


講了這麼多,那容器化技術到底是什麼,為了方便理解要先區分一下容器內和容器外的世界

在容器外看容器就好像是程式一樣,它可能是一個腳本程式跑完就結束了,也可能是一個常駐程式,不去關掉它,它就會一直不斷執行

在容器內看容器就好像是一個作業系統一樣,可以執行任何的系統操作,像是讀寫檔案、使用網路、安裝各種程式,基本上很難區分自己是不是在容器裡面

把程式放到容器中執行的話,就不需要在容器外(宿主機上)安裝程式所需的環境了,只需要在容器裡面設定好環境就可以了

這樣只要把不同的容器跑起來就可以創造不同的環境,達成在同一台電腦上開發不同的專案,也能夠在不同的電腦中使用相同的容器,讓裡面的程式以為自己是跑在同一台電腦中


在 Linux 安裝 Docker

Docker 是一個非常流行的工具,它實現了這個容器化的概念,也有其他容器化技術的工具,不過選最主流的,遇到問題時最好找答案了

首先還是打開官網,找到下載的地方
https://docs.docker.com/get-docker/

我用的系統是 debian,所以就點 debian 的安裝方式
https://docs.docker.com/engine/install/debian/#install-using-the-repository

更新一下套件

sudo apt update && sudo apt upgrade

設定 Docker 的 apt 儲存庫,告訴 apt 要去哪邊載 Docker

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

安裝 Docker

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

測試 Docker

sudo docker run hello-world

這樣就安裝成功囉


在 Windows 安裝 Docker

從官網找到 Windows 的載點
https://docs.docker.com/desktop/install/windows-install/

下載安裝程式

開始安裝

問說要不要建立桌面捷徑,我不想要所以就取消了

繼續安裝,並且幫你做了一些系統設定

安裝完後會需要重新啟動電腦,就把該存的東西存一存然後按下中間的按鈕吧

重新啟動電腦後會出現使用者協議,還有大企業使用記得付錢,就直接按 Accept 就可以了

右下角還會出現一個鯨魚小 icon,表示 Docker 正在運作

它說我的 WSL 版本太低了要先更新

那就先來更新一下

wsl --update

再次啟動 Docker Desktop,我電腦好慢

現在就可以開始使用 Docker 囉

在 VSCode 中也有 GUI 工具
https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker

不想用 GUI 介面的話,用終端機也是可以操作的


上一篇
【Walking Skeleton】Day28 - 在正式環境部屬 Laravel,並且加上 CI/CD
下一篇
【Walking Skeleton】Day30 - 使用 Docker 建立開發環境
系列文
嘿,稍等一下!別急著開發功能,先來打造 Walking Skeleton 吧!34
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言