# Docker 打包容器
---
## 使用指令打包
----
- 以下是將現有容器打包成映像檔的步驟。
1. 使用以下命令列出正在運行的容器,並找到要打包的容器的 ID。
```bash=
docker ps
```
----
2. 使用以下命令將容器保存為映像檔:
```bash=
docker commit [CONTAINER_ID] [IMAGE_NAME]
```
----
其中,[CONTAINER_ID] 是要打包的容器的 ID,[IMAGE_NAME] 是映像檔的名稱和標籤。例如:
```bash=
docker commit d9e57af7fde4 myimage:latest
```
在上面的示例中,d9e57af7fde4 是要打包的容器的 ID,myimage:latest 是映像檔的名稱和標籤。
----
3. 使用以下命令列出所有映像檔,確認已經成功創建了映像檔:
```bash=
docker images
```
其中,[CONTAINER_ID] 是要刪除的容器的 ID。如果不需要刪除原始容器,可以跳過此步驟。
----
4. 接下來可以使用以下命令運行新創建的映像檔:
```bash=
docker run -it [IMAGE_NAME] /bin/bash
```
其中,-it 選項用於指定容器在交互模式下運行,[IMAGE_NAME] 是剛剛創建的映像檔的名稱和標籤。
----
以上是將現有容器打包成映像檔的基本步驟。需要注意的是,這種方式打包出來的映像檔通常體積較大,因為它包含了整個容器的狀態和文件系統。如果需要更小的映像檔,可以考慮使用 Dockerfile 構建映像檔,而不是將現有容器打包。
---
## 使用Portainer 打包容器
----
使用指令打包十分麻煩,且不直覺
所幸Portainer有提供打包工具,可以快速打包下載或上傳。
----
### 1. 取要打包的容器

----
### 2. 為Image取名與設定

----
### 3. 處理image

----
### 4. 控制image

----
### 5. Push image
上載前,要到"tag the image"對image加上倉庫註解與tag

----
### 6. 下載image

---
## 使用docker image檔案
----
### 1. 匯入檔案

----
### 2. 上載image.tar

----
### 3. 使用image

{"metaMigratedAt":"2023-06-18T01:48:44.851Z","metaMigratedFrom":"YAML","title":"Docker 打包容器","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"spotlight\":{\"enabled\":false}}","contributors":"[{\"id\":\"388c4bf6-8beb-45c5-8632-2fb50296a8c5\",\"add\":1592,\"del\":2}]"}