在 Mac 安裝 Docker Desktop

在 Mac 安裝 Docker Desktop
Photo by Dawit / Unsplash

換了新的 Mac,趁著是乾淨的環境,把安裝過程記錄下來,方便未來查找。

使用 brew 進行安裝,所以開始前需要先為 mac 安裝 brew,在 terminal 執行以下指令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

接著就可以安裝 Docker 了

brew install --cask docker

(安裝過程中可能需要輸入當前登入帳號的密碼)

正常安裝成功,應該會看到如底下圖片的 "docker was successfully installed!

接著將 docker desktop 打開 (也可以到應用程式找小鯨魚點擊開啟)

open -a docker

過程中會有一些互動確認,先都使用預設設定,完成後基本上 docker daemon 的狀態也是運行中了
最後,在終端機試著 run hello-world image 確認服務正常

docker run hello-world

這個指令會先檢查本機有沒有 hello-world 這個 image,如果沒有的話,會提示訊息,並到 Docker Hub 上下載來本機,再使用這個 image 運行一個 container,container 運行起來只是 Say 個 Hello 就關閉了

確認安裝的服務正常沒問題後,把 hello-world 的 container 和 image 刪除 (個人習慣把沒有要使用的 container 和 image 移除)

  • 刪除 container

    • 查看 container

      docker ps -a

      docker ps 指令可以查看運行中的 container,但剛剛我們提到了這個 container 執行完要做的事就關閉了,如果想查看不論是否運行中的 container,需要加上 -a 這個 option 全部顯示 (docker ps -a),指令執行後的輸出會類似如下的圖片,接著我們就可以透過 CONTAINER ID 或 NAME 來操作 container

    • 刪除指令的 container

      docker rm kind_wiles

      刪除 continer 時,需確認 container 是停止的,在本文範例中的 container 已經是停止的了,可以直接刪除,如果是還在運行的,就需要先透過 docker stop ${container_name} 的方式停止 container

  • 刪除 image

    • 查看本機目前有哪些 image

      docker image

      指令執行後的輸出如下圖
      docker rmi image id

    • 刪除指定的 image (透過 IMAGE ID 來刪除),例如:

      docker rmi ee301c921b8d

Read more

部落格遷移紀錄

部落格遷移紀錄

是的,又搬家了。 這次搬家像是一種重新開始,遷移的範圍稍微大些,大致上有兩段變動: * 從功能豐富的 WordPress 到簡潔高效的 Ghost * 從 SugarHosts 搬遷到 Google Cloud Platform (GCP) Wordpress 的功能非常豐富,只是我使用到的部分極少,總想找個簡潔的服務使用,但忙碌的工作很快就澆熄了動力。一次在輸出小組群組中的討論,注意到 Ghost 這個部落格平台,試裝操作看看,體驗還不賴,想著我的文章數也很少 (心虛),就搬吧! 推進這個改變的契機,一部分也來自於 SugarHosts 自 2024 年底在網路社群中的討論,其中也包含了客服回應的議題,必須說,SugarHosts 的價格真的很有吸引力,只是客服回應效率突然發生的落差,我開始擔心這是否對影響到部落格,開始思考搬家的可能。 在年假期間,我利用 GCP 提供的 300 美元三個月試用額度來搭建新服務,並順便將文章搬遷到

By Jo
筆記 | Ubuntu 掛載磁碟

筆記 | Ubuntu 掛載磁碟

最近在 GCP 試玩 Compute Engine (VM),建立時另外新增了一顆磁碟,實際運行了才發現,原來需要自行掛載,記錄執行的指令與過程。 以 Ubuntu 22.04 為例 (多數的 Linux 應該也可以使用) 確認新增的磁碟是否存在 lsblk 大多情況應該會看到新的磁碟還沒有掛載任何分區 格式化 (如果硬碟還沒有格式化) sudo mkfs.ext4 /dev/sdb 配置自動掛載 取得新磁碟的 UUID sudo blkid /dev/sdb 一般會顯示類似以下的結果 /dev/sdb: UUID="一串由-符號串接的英數字" BLOCK_SIZE="4096" TYPE="ext4&

By Jo
筆記 | PostgreSQL v12 CTEs 行為改變

筆記 | PostgreSQL v12 CTEs 行為改變

前段時間,工作環境將 PostgreSQL v10 升級到 v15,升級後發現報表的執行效率從 1 秒變成了 2 分多鐘,也剛好變因太多,排查了很多項後才開始面對 SQL 執行計畫,同一段 SQL v10 跟 v15 有很大的差別,許多人花了一番功夫調整,速度才回到水準,接著進一步從調整方向的線索,再爬網路文章,才發現原來在 PostgreSQL v12 有一項對我們來說蠻重要的改變:CTEs 行為改變。 過去經驗裡,SQL 使用 CTE (Common Table Expression) 能將一段查詢的結果暫存起來,在主查詢語句中使用,能有提升查詢效率的效果 例如: WITH temp AS ( SELECT col1, col2, col3 FROM

By Jo
筆記 | 在 Ubuntu 22.04 安裝 Kubernetes Cluster

筆記 | 在 Ubuntu 22.04 安裝 Kubernetes Cluster

許多網路文章中都有安裝 kubernetes cluster 的教學,也因為版本更迭,爬了很多的文章、裝了非常多次,整理以下的筆記,幫自己防忘記。 實作環境 * 主機 (VM) 3 台,一台 master、兩台 node * pve-master * pve-node1 * pve-node2 * 作業系統 Ubuntu 22.04 * Container Runtime 選擇 containerd.io 筆記的幾個大步驟,有些是所有節點都要做,有些則否,整理如底下的表格: Step pve-master pve-node1 pve-node2 安裝前置 V V V 安裝 Container Runtime V V V 安裝 kubeadm

By Jo