我們在先前文章提過,Dockerfile 是我們用來建立 Image 的檔案
我們可以把 Dockerfile 想像成是千層蛋糕
每一層為一個 Layer
Image 就是層層堆疊後的千層蛋糕
讓我們來看一下 DockerHub 裡的 Ruby
按到 Tags 頁籤,任意按一個版號進去,就會看到像是歷史紀錄的畫面,這就是 Dockerfile 跑出來的層層 Layer
到這邊應該還是難想像,我們來動手建立一個 Dockerfile 應該就會比較好理解
我們來依序介紹 Dockerfile 的指令,並且邊按照下列步驟練習
1 | # 用什麼語言寫的,AS node 可以當作是貼上一個貼紙 |
上面是針對一個由 Node.js 寫的專案建立的 Dockerfile
基本上就是把我們平常架起環境的步驟
只是會再切分的細一點
還有一些指令我們還沒提到,再來為大家統整一下
1 | FROM:描述這個 Image 的基底,假設我們今天要做的專案是以 ruby 寫的,就可以設定為 ruby:alpine3.17 |
當 Dockerfile 寫完後,我們就可以來把他打包成一顆 Image 了!
1 | $ docker build -t <Image name> . |
想要更改 Tag 名稱的時候
1 | $ docker image tag ruby:latest ruby:Ning |
建立好 Image 後,就可以來跑 Container
1 | $ docker container run -d -p 3000:3000 <Image name> |
停止 Container
1 | $ docker container stop <Container name or ID> |
移除 Container
1 | $ docker container rm <Container name or ID> |
移除 Image
1 | $ docker image rm <Image name> |
查看 Image 歷史紀錄
1 | $ docker image history <Image name> |
查看 Image 的 Metadata
1 | $ docker image inspect <Image name> |
以上是基本的 Image 及 Container 常用指令
Docker 的指令非常多,所以想要學好 Docker 就要常常來練習~