docker 小筆記 [2] -- images, containers 之間的轉換
Page content
最近頻繁在使用 docker,特別把 image、container 和 Dockerfile 之間的轉換抓出來記一下。
A. image -> container
這條路我們常常走,從已有的 image (不論是我們自己創還是拉別人的) 創建 container。
(舉例)
docker run <container>
B. Dockerfile -> image
Dockerfile 的寫法 這裡先略過。
主要就下面的指令,.
表示使用當前目錄下的 Dockerfile,當然也可以指定其他資料夾下的。
docker build .
但通常會幫他加上 name (<Docker Hub 帳號>/image_name
)
可以在 build 時就指定,
docker build -t <name> .
也可以事後給。
docker tag <image id> <image name>
創建完成後 docker images
應該就能看到剛剛建立的 image
C. container -> image
我們可能在 container 內做了一些更改,想要把這個做了更動的 container 轉成 image。
(例如用 docker exec
進去改了一些檔案)
docker exec -it <container> /bin/sh
透過以下指令,把這個執行中的 container 轉成 image。
docker commit <container id> <new image name>
把 docker image 推上 Dockerhub
- docker login
輸入帳號密碼後,若成功會顯示 Login Succeeded
docker login
- 在 Dockerhub 網站創建一個 repo
https://hub.docker.com/repositories
點選 Create Respository
創一個 Repo
- 將 image 上傳至指定 repo
docker commit <image name>
這樣之後在其他地方也可以用 docker pull
把之前打包好的 image 拉下來了