éåä½ä¸º Docker ä¸å¤§æ ¸å¿æ¦å¿µä¸ï¼æéè¦çä¸ä¸ªå
³é®è¯ï¼å®æå¾å¤æä½ï¼æ¯æ¨æ³å¦ä¹ 容卿æ¯ä¸å¾ä¸ææ¡çãæ¬æå°å¸¦æ¨ä¸æ¥ä¸æ¥ï¼å¾æå¹¶éï¼ä¸ææä½æ¥å¦ä¹ å®ã
### ç®å½
- [ä¸ Docker ä¸è½½éå](#ä¸-docker-ä¸è½½éå)
- [1.1 ä¸è½½éå](#11-ä¸è½½éå)
- [1.2 éªè¯](#12-éªè¯)
- [1.3 ä¸è½½éåç¸å
³ç»è](#13-ä¸è½½éåç¸å
³ç»è)
- [1.4 PULL åå½ä»¤](#14-pull-åå½ä»¤)
- [äº Docker æ¥çéåä¿¡æ¯](#äº-docker-æ¥çéåä¿¡æ¯)
- [2.1 images å½ä»¤ååºéå](#21-images-å½ä»¤ååºéå)
- [2.2 ä½¿ç¨ tag å½ä»¤ä¸ºéåæ·»å æ ç¾](#22-使ç¨-tag-å½ä»¤ä¸ºéåæ·»å æ ç¾)
- [2.3 ä½¿ç¨ inspect å½ä»¤æ¥çéå详ç»ä¿¡æ¯](#23-使ç¨-inspect-å½ä»¤æ¥çéå详ç»ä¿¡æ¯)
- [2.4 ä½¿ç¨ history å½ä»¤æ¥çéååå²](#24-使ç¨-history-å½ä»¤æ¥çéååå²)
- [ä¸ Docker æç´¢éå](#ä¸-docker-æç´¢éå)
- [3.1 search å½ä»¤](#31-search-å½ä»¤)
- [3.2 search åå½ä»¤](#32-search-åå½ä»¤)
- [å Docker å é¤éå](#å-docker-å é¤éå)
- [4.1 éè¿æ ç¾å é¤éå](#41-éè¿æ ç¾å é¤éå)
- [4.2 éè¿ ID å é¤éå](#42-éè¿-id-å é¤éå)
- [4.3 å é¤éåçéå¶](#43-å é¤éåçéå¶)
- [4.4 æ¸
çéå](#44-æ¸
çéå)
- [äº Docker å建éå](#äº-docker-å建éå)
- [5.1 åºäºå·²æçéåå建](#51-åºäºå·²æçéåå建)
- [5.2 åºäº Dockerfile å建](#52-åºäº-dockerfile-å建)
- [å
Docker 导åº&å è½½éå](#å
-docker-导åºå è½½éå)
- [6.1 导åºéå](#61-导åºéå)
- [6.2 å è½½éå](#62-å è½½éå)
- [ä¸ Docker ä¸ä¼ éå](#ä¸-docker-ä¸ä¼ éå)
- [7.1 è·å Docker ID](#71-è·å-docker-id)
- [7.2 å建éåä»åº](#72-å建éåä»åº)
- [7.3 ä¸ä¼ éå](#73-ä¸ä¼ éå)
- [å
« æ»ç»](#å
«-æ»ç»)
## ä¸ Docker ä¸è½½éå
妿æä»¬æ³è¦å¨æ¬å°è¿è¡å®¹å¨ï¼å°±å¿
é¡»ä¿è¯æ¬å°åå¨å¯¹åºçéåãæä»¥ï¼ç¬¬ä¸æ¥ï¼æä»¬éè¦ä¸è½½éåã彿们å°è¯ä¸è½½éåæ¶ï¼Docker ä¼å°è¯å
ä»é»è®¤çéåä»åºï¼é»è®¤ä½¿ç¨ Docker Hub å
Œ
±ä»åºï¼å»ä¸è½½ï¼å½ç¶äºï¼ç¨æ·ä¹å¯ä»¥èªå®ä¹é
ç½®æ³è¦ä¸è½½çéåä»åºã
### 1.1 ä¸è½½éå
é忝è¿è¡å®¹å¨çåæï¼æä»¬å¯ä»¥ä½¿ç¨ `docker pull[IMAGE_NAME]:[TAG]`å½ä»¤æ¥ä¸è½½éåï¼å
¶ä¸ `IMAGE_NAME` è¡¨ç¤ºçæ¯éåçåç§°ï¼è `TAG` æ¯éåçæ ç¾ï¼ä¹å°±æ¯è¯´æä»¬éè¦éè¿ â**éå + æ ç¾**â çæ¹å¼æ¥ä¸è½½éåã
**注æï¼** æ¨ä¹å¯ä»¥ä¸æ¾å¼å°æå® TAG, å®ä¼é»è®¤ä¸è½½ latest æ ç¾ï¼ä¹å°±æ¯ä¸è½½ä»åºä¸ææ°çæ¬çéåãè¿é并䏿¨èæ¨ä¸è½½ latest æ ç¾ï¼å 为该éåçå
容ä¼è·è¸ªéåçææ°çæ¬ï¼å¹¶éä¹ååï¼æä»¥å®æ¯ä¸ç¨³å®çãå¨ç产ç¯å¢ä¸ï¼å¯è½ä¼åºç°è«åå
¶å¦ç bug, æ¨èæ¨æå¥½è¿æ¯æ¾ç¤ºçæå®å
·ä½ç TAGã
举个ä¾åï¼å¦æä»¬æ³è¦ä¸è½½ä¸ä¸ª Mysql 5.7 éåï¼å¯ä»¥éè¿å½ä»¤æ¥ä¸è½½ï¼
```
docker pull mysql:5.7
```
ä¼çå°æ§å¶å°è¾åºå
容å¦ä¸ï¼

**注æï¼** ç±äºå®æ¹ DockerHub ä»åºæå¡å¨å¨å½å¤ï¼ä¸è½½éåº¦è¾æ
¢ï¼æä»¥æå°ä»åºçå°åæ´æ¹æäºå½å
ç `docker.io` çéåä»åºï¼æä»¥å¨ä¸å¾ä¸ï¼éååé¢ä¼æ `docker.io` åºç°ã
彿 **Downloaded** å符串è¾åºçæ¶åï¼è¯´æä¸è½½æåäºï¼ï¼
### 1.2 éªè¯
让æä»¬æ¥éªè¯ä¸ä¸ï¼æ¬å°æ¯å¦åå¨ Mysql5.7 çéåï¼è¿è¡å½ä»¤ï¼
```
docker images
```

å¯ä»¥çå°æ¬å°çç¡®åå¨è¯¥éåï¼ç¡®å®æ¯ä¸è½½æåäºï¼
### 1.3 ä¸è½½éåç¸å
³ç»è
å说说ä¸é¢ä¸è½½éåçè¿ç¨ï¼

éè¿ä¸è½½è¿ç¨ï¼å¯ä»¥çå°ï¼ä¸ä¸ªéåä¸è¬æ¯ç±å¤ä¸ªå±ï¼ `layer`ï¼ ç»æï¼ç±»ä¼¼ `f7e2b70d04ae`è¿æ ·ç串表示å±çå¯ä¸ IDï¼å®é
ä¸å®æ´ç ID å
æ¬äº 256 个 bit, 64 个åå
è¿å¶åç¬¦ç»æï¼ã
**æ¨å¯è½ä¼æ³ï¼å¦æå¤ä¸ªä¸åçéåä¸ï¼åæ¶å
å«äºåä¸ä¸ªå±ï¼ layerï¼,è¿æ ·éå¤ä¸è½½ï¼å²ä¸æ¯å¯¼è´äºåå¨ç©ºé´ç浪费ä¹?**
å®é
ä¸ï¼Docker å¹¶ä¸ä¼è¿ä¹å»ä¼å»ä¸è½½éå¤çå±ï¼ `layer`ï¼,Docker å¨ä¸è½½ä¹åï¼ä¼å»æ£æµæ¬å°æ¯å¦ä¼æåæ · ID çå±ï¼å¦ææ¬å°å·²ç»åå¨äºï¼å°±ç´æ¥ä½¿ç¨æ¬å°ç就好äºã
**å¦ä¸ä¸ªé®é¢ï¼ä¸åä»åºä¸ï¼å¯è½ä¹ä¼åå¨éåéåçæ
åµåç, è¿ç§æ
åµååï¼**
ä¸¥æ ¼æä¹ä¸ï¼æä»¬å¨ä½¿ç¨ `docker pull` å½ä»¤æ¶ï¼è¿éè¦å¨éåå颿å®ä»åºå°å( `Registry`), 妿䏿å®ï¼å Docker ä¼ä½¿ç¨æ¨é»è®¤é
ç½®çä»åºå°åãä¾å¦ä¸é¢ï¼ç±äºæé
ç½®çæ¯å½å
`docker.io` çä»åºå°åï¼æå¨ `pull` çæ¶åï¼docker ä¼é»è®¤ä¸ºæå ä¸ `docker.io/library` çåç¼ã
å¦ï¼å½ææ§è¡ `docker pull mysql:5.7` å½ä»¤æ¶ï¼å®é
ä¸ç¸å½äº `docker pull docker.io/mysql:5.7`ï¼å¦ææ¨æªèªå®ä¹é
ç½®ä»åºï¼åé»è®¤å¨ä¸è½½çæ¶åï¼ä¼å¨éååé¢å ä¸ DockerHub çå°åã
Docker éè¿åç¼å°åçä¸åï¼æ¥ä¿è¯ä¸åä»åºä¸ï¼éåéåçå¯ä¸æ§ã
### 1.4 PULL åå½ä»¤
å½ä»¤è¡ä¸è¾å
¥ï¼
```
docker pull --help
```
ä¼å¾å°å¦ä¸ä¿¡æ¯ï¼
```
[root@iZbp1j8y1bab0djl9gdp33Z ~]# docker pull --help
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options: -a, --all-tags Download all tagged images in the repository --disable-content-trust Skip image verification (default true) --help Print usage
```
æä»¬å¯ä»¥çå°ä¸»è¦æ¯æçåå½ä»¤æï¼
1. `-a,--all-tags=true|false`: æ¯å¦è·åä»åºä¸ææéåï¼é»è®¤ä¸ºå¦ï¼
2. `--disable-content-trust`: è·³è¿éåå
å®¹çæ ¡éªï¼é»è®¤ä¸º true;
## äº Docker æ¥çéåä¿¡æ¯
### 2.1 images å½ä»¤ååºéå
éè¿ä½¿ç¨å¦ä¸ä¸¤ä¸ªå½ä»¤ï¼ååºæ¬æºå·²æçéåï¼
```
docker images
```
æï¼
```
docker image ls
```
å¦ä¸å¾æç¤ºï¼

对ä¸è¿°çº¢è²æ 注çåæ®µåä¸ä¸è§£éï¼
- **REPOSITORY**: æ¥èªäºåªä¸ªä»åºï¼
- **TAG**: éåçæ ç¾ä¿¡æ¯ï¼æ¯å¦ 5.7ãlatest 表示ä¸åççæ¬ä¿¡æ¯ï¼
- **IMAGE ID**: éåç ID, 妿æ¨çå°ä¸¤ä¸ª ID å®å
¨ç¸åï¼é£ä¹å®é
ä¸ï¼å®ä»¬æåçæ¯åä¸ä¸ªéåï¼åªæ¯æ ç¾åç§°ä¸åç½¢äºï¼
- **CREATED**: éåæåçæ´æ°æ¶é´ï¼
- **SIZE**: éåç大å°ï¼ä¼ç§çéåä¸è¬ä½ç§¯é½æ¯è¾å°ï¼è¿ä¹æ¯ææ´å¾åäºä½¿ç¨è½»é级ç alpine çæ¬çåå ï¼
> 注æï¼å¾ä¸çéå大å°ä¿¡æ¯åªæ¯é»è¾ä¸ç大å°ä¿¡æ¯ï¼å 为ä¸ä¸ªé忝ç±å¤ä¸ªéåå±ï¼ `layer`ï¼ç»æçï¼èç¸åçéå屿¬å°åªä¼åå¨ä¸ä»½ï¼æä»¥ï¼ç宿
åµä¸ï¼å ç¨çç©çåå¨ç©ºé´å¤§å°ï¼å¯è½ä¼å°äºé»è¾å¤§å°ã
### 2.2 ä½¿ç¨ tag å½ä»¤ä¸ºéåæ·»å æ ç¾
é常æ
åµä¸ï¼ä¸ºäºæ¹ä¾¿å¨åç»å·¥ä½ä¸ï¼å¿«éå°æ¾å°æä¸ªéåï¼æä»¬å¯ä»¥ä½¿ç¨ `docker tag` å½ä»¤ï¼ä¸ºæ¬å°éåæ·»å ä¸ä¸ªæ°çæ ç¾ãå¦ä¸å¾æç¤ºï¼

为 `docker.io/mysql` éåï¼æ·»å æ°çéåæ ç¾ `allen_mysql:5.7`ãç¶åä½¿ç¨ `docker images` å½ä»¤ï¼æ¥çæ¬å°éåï¼

å¯ä»¥çå°ï¼æ¬å°å¤äºä¸ä¸ª `allen_mysql:5.7` çéåãç»å¿çä½ ä¸å®è¿ä¼åç°ï¼ `allen_mysql:5.7` å `docker.io/mysql:5.7` çéå ID æ¯ä¸æ¨¡ä¸æ ·çï¼è¯´æå®ä»¬æ¯åä¸ä¸ªéåï¼åªæ¯å«åä¸åèå·²ã
`docker tag` å½ä»¤åè½æ´åæ¯, 为æå®éåæ·»å å¿«æ·æ¹å¼ä¸æ ·ã
### 2.3 ä½¿ç¨ inspect å½ä»¤æ¥çéå详ç»ä¿¡æ¯
éè¿ `docker inspect` å½ä»¤ï¼æä»¬å¯ä»¥è·åéåç详ç»ä¿¡æ¯ï¼å
¶ä¸ï¼å
æ¬å建è
ï¼åå±çæ°åæè¦çã
```
docker inspect docker.io/mysql:5.7
```

`docker inspect` è¿åçæ¯ `JSON` æ ¼å¼çä¿¡æ¯ï¼å¦ææ¨æ³è·åå
¶ä¸æå®çä¸é¡¹å
容ï¼å¯ä»¥éè¿ `-f` æ¥æå®ï¼å¦è·åéå大å°ï¼
```
docker inspect -f {{".Size"}} docker.io/mysql:5.7
```

### 2.4 ä½¿ç¨ history å½ä»¤æ¥çéååå²
åé¢çå°èä¸ï¼æä»¬ç¥éäºï¼ä¸ä¸ªé忝ç±å¤ä¸ªå±ï¼layerï¼ç»æçï¼é£ä¹ï¼æä»¬è¦å¦ä½ç¥éå个å±çå
·ä½å
容å¢ï¼
éè¿ `docker history` å½ä»¤ï¼å¯ä»¥ååºå个å±ï¼layerï¼çå建信æ¯ï¼å¦æä»¬æ¥ç `docker.io/mysql:5.7` çåå±ä¿¡æ¯ï¼
```
docker history docker.io/mysql:5.7
```

å¯ä»¥çå°ï¼ä¸é¢è¿é¿çä¿¡æ¯ï¼ä¸ºäºæ¹ä¾¿å±ç¤ºï¼åé¢é½çç¥äºï¼å¦ææ¨æ³è¦çå
·ä½ä¿¡æ¯ï¼å¯ä»¥éè¿æ·»å `--no-trunc` é项ï¼å¦ä¸é¢å½ä»¤ï¼
```
docker history --no-trunc docker.io/mysql:5.7
```
## ä¸ Docker æç´¢éå
### 3.1 search å½ä»¤
æ¨å¯ä»¥éè¿ä¸é¢å½ä»¤è¿è¡æç´¢ï¼
```
docker search [option] keyword
```
æ¯å¦ï¼æ¨æ³æç´¢ä»åºä¸ `mysql` ç¸å
³çéåï¼å¯ä»¥è¾å
¥å¦ä¸å½ä»¤ï¼
```
docker search mysql
```

### 3.2 search åå½ä»¤
å½ä»¤è¡è¾å
¥ `docker search--help`, è¾åºå¦ä¸ï¼
```
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options: -f, --filter filter Filter output based on conditions provided --help Print usage --limit int Max number of search results (default 25) --no-index Don't truncate output --no-trunc Don't truncate output
```
å¯ä»¥çå° `search` æ¯æçåå½ä»¤æï¼
- `-f,--filter filter`: è¿æ»¤è¾åºçå
容ï¼
- `--limitint`ï¼æå®æç´¢å
容å±ç¤ºä¸ªæ°;
- `--no-index`: 䏿ªæè¾åºå
容ï¼
- `--no-trunc`ï¼ä¸æªæè¾åºå
容ï¼
举个ååï¼æ¯å¦æä»¬æ³æç´¢å®æ¹æä¾ç mysql éåï¼å½ä»¤å¦ä¸ï¼
```
docker search --filter=is-official=true mysql
```

忝å¦ï¼æä»¬æ³æç´¢ Stars æ°è¶
è¿ 100 ç mysql éåï¼
```
docker search --filter=stars=100 mysql
```

## å Docker å é¤éå
### 4.1 éè¿æ ç¾å é¤éå
éè¿å¦ä¸ä¸¤ä¸ªé½å¯ä»¥å é¤éåï¼
```
docker rmi [image]
```
æè
ï¼
```
docker image rm [image]
```
æ¯æçåå½ä»¤å¦ä¸ï¼
- `-f,-force`: 强å¶å é¤éåï¼å³ä¾¿æå®¹å¨å¼ç¨è¯¥éåï¼
- `-no-prune`: ä¸è¦å 餿ªå¸¦æ ç¾çç¶éåï¼
Docker æ¥çéåä¿¡æ¯
ä¾å¦ï¼æä»¬æ³å é¤ä¸ç« èå建ç `allen_mysql:5.7` éåï¼å½ä»¤å¦ä¸ï¼
```shell
docker rmi allen_mysql:5.7
```

ä»ä¸é¢ç« èä¸ï¼æä»¬ç¥é `allen_mysql:5.7` å `docker.io/mysql:5.7` å®é
䏿åçæ¯åä¸ä¸ªéåï¼é£ä¹ï¼æ¨å¯ä»¥è½ä¼æçé®ï¼æå é¤äº `allen_mysql:5.7`, ä¼ä¸ä¼å° `docker.io/mysql:5.7` éåä¹ç»å é¤äºï¼
**å®é
ä¸ï¼å½åä¸ä¸ªé忥æå¤ä¸ªæ ç¾æ¶ï¼æ§è¡ `docker rmi` å½ä»¤ï¼åªæ¯ä¼å é¤äºè¯¥éåä¼å¤æ ç¾ä¸ï¼æ¨æå®çæ ç¾èå·²ï¼å¹¶ä¸ä¼å½±ååå§çé£ä¸ªéåæä»¶ã**
ä¸ä¿¡çè¯ï¼æä»¬å¯ä»¥æ§è¡ `docker images` å½ä»¤ï¼æ¥çä¸ `docker.io/mysql:5.7` éåè¿å¨ä¸å¨ï¼

å¯ä»¥çå°ï¼ `docker.io/mysql:5.7` éåä¾ç¶åå¨ï¼
é£ä¹ï¼å¦ææä¸ªéåä¸åå¨å¤ä¸ªæ ç¾ï¼å½ä¸ä»
å½åªæä¸ä¸ªæ ç¾æ¶ï¼æ§è¡å é¤å½ä»¤æ¶ï¼æ¨å°±è¦å°å¿äºï¼è¿ä¼å½»åºå é¤éåã
ä¾å¦ï¼è¿ä¸ªæ¶åï¼æä»¬åæ§è¡ `docker rmi docker.io/mysql:5.7` å½ä»¤ï¼

ä»ä¸å¾å¯ä»¥çå°ï¼æä»¬å·²ç»å é¤äº `docker.io/mysql:5.7` éåçæææä»¶å±ã该éå卿¬å°å·²ä¸å¤åå¨äºï¼
### 4.2 éè¿ ID å é¤éå
é¤äºéè¿æ ç¾åç§°æ¥å é¤éåï¼æä»¬è¿å¯ä»¥éè¿å¶å®éå ID, æ¥å é¤éåï¼å¦ï¼
```
docker rmi ee7cbd482336
```
䏿¦å¶å®äºéè¿ ID æ¥å é¤éåï¼å®ä¼å
å°è¯å 餿ææå该éåçæ ç¾ï¼ç¶åå¨å é¤éåæ¬èº«ã
### 4.3 å é¤éåçéå¶
å é¤éåå¾ç®åï¼ä½ä¹ä¸æ¯æä»¬ä½æ¶ä½å°é½è½å é¤çï¼å®åå¨ä¸äºéå¶æ¡ä»¶ã
å½éè¿è¯¥éåå建ç容卿ªè¢«éæ¯æ¶ï¼éåæ¯æ æ³è¢«å é¤çã为äºéªè¯è¿ä¸ç¹ï¼æä»¬æ¥å个è¯éªãé¦å
ï¼æä»¬éè¿ `docker pull alpine` å½ä»¤ï¼æåä¸ä¸ªææ°ç `alpine` éå, ç¶åå¯å¨éåï¼è®©å
¶è¾åº `hello,docker!`:

æ¥ä¸æ¥ï¼æä»¬æ¥å é¤è¿ä¸ªéåè¯è¯ï¼

å¯ä»¥çå°æç¤ºä¿¡æ¯ï¼æ æ³å é¤è¯¥éåï¼å 为æå®¹å¨æ£å¨å¼ç¨ä»ï¼åæ¶ï¼è¿æ®µä¿¡æ¯è¿åè¯æä»¬ï¼é¤ééè¿æ·»å `-f` åå½ä»¤ï¼ä¹å°±æ¯å¼ºå¶å é¤ï¼æè½ç§»é¤æè¯¥éåï¼
```
docker rmi -f docker.io/alpine
```
使¯ï¼æä»¬ä¸è¬ä¸æ¨èè¿æ ·æ´åçåæ³ï¼æ£ç¡®çåæ³åºè¯¥æ¯ï¼
1. å
å é¤å¼ç¨è¿ä¸ªéåç容å¨ï¼
2. åå é¤è¿ä¸ªéåï¼
ä¹å°±æ¯ï¼æ ¹æ®ä¸å¾ä¸æç¤ºçï¼å¼ç¨è¯¥éåçå®¹å¨ ID ( `9d59e2278553`), æ§è¡å é¤å½ä»¤ï¼
```
docker rm 9d59e2278553
```
ç¶åï¼åæ§è¡å é¤éåçå½ä»¤ï¼
```
docker rmi 5cb3aa00f899
```
Docker å é¤éå
è¿ä¸ªæ¶åï¼å°±è½æ£å¸¸å é¤äºï¼
### 4.4 æ¸
çéå
æä»¬å¨ä½¿ç¨ Docker 䏿®µæ¶é´åï¼ç³»ç»ä¸è¬é½ä¼æ®åä¸äºä¸´æ¶çãæ²¡æè¢«ä½¿ç¨çéåæä»¶ï¼å¯ä»¥éè¿ä»¥ä¸å½ä»¤è¿è¡æ¸
çï¼
```
docker image prune
```
宿¯æçåå½ä»¤æï¼
- `-a,--all`: å é¤æææ²¡æç¨çéåï¼èä¸ä»
ä»
æ¯ä¸´æ¶æä»¶ï¼
- `-f,--force`ï¼å¼ºå¶å é¤éåæä»¶ï¼æ éå¼¹åºæç¤ºç¡®è®¤ï¼
## äº Docker å建éå
æ¤å°èä¸ï¼æ¨å°å¦ä¹ Docker å¦ä½å建éåï¼Docker å建éåä¸»è¦æä¸ç§ï¼
1. åºäºå·²æçéåå建ï¼
2. åºäº Dockerfile æ¥å建ï¼
3. åºäºæ¬å°æ¨¡æ¿æ¥å¯¼å
¥ï¼
æä»¬å°ä¸»è¦ä»ç»å¸¸ç¨ç 1ï¼2 两ç§ã
### 5.1 åºäºå·²æçéåå建
éè¿å¦ä¸å½ä»¤æ¥å建ï¼
```
docker container commit
```
æ¯æçåå½ä»¤å¦ä¸ï¼
- `-a,--author`="": ä½è
ä¿¡æ¯ï¼
- `-c,--change`=[]: å¯ä»¥å¨æäº¤çæ¶åæ§è¡ Dockerfile æä»¤ï¼å¦ CMDãENTRYPOINTãENVãEXPOSEãLABELãONBUILDãUSERãVOLUMEãWORIR çï¼
- `-m,--message`="": æäº¤ä¿¡æ¯ï¼
- `-p,--pause`=true: æäº¤æ¶ï¼æå容å¨è¿è¡ã
æ¥ä¸æ¥ï¼åºäºæ¬å°å·²æç Ubuntu éåï¼å建ä¸ä¸ªæ°çéåï¼

é¦å
ï¼è®©æå°å®è¿è¡èµ·æ¥ï¼å¹¶å¨å
¶ä¸å建ä¸ä¸ª test.txt æä»¶ï¼

å½ä»¤å¦ä¸ï¼
```
docker run -it docker.io/ubuntu:latest /bin/bashroot@a0a0c8cfec3a:/# touch test.txtroot@a0a0c8cfec3a:/# exit
```
åå»ºå® test.txt æä»¶åï¼éè¦è®°ä½æ 注çå®¹å¨ ID: `a0a0c8cfec3a`, ç¨å®æ¥æäº¤ä¸ä¸ªæ°çéå(**PS: ä½ ä¹å¯ä»¥éè¿åç§°æ¥æäº¤éåï¼è¿éåªæ¼ç¤ºéè¿ ID çæ¹å¼**)ã
æ§è¡å½ä»¤ï¼
```
docker container commit -m "Added test.txt file" -a "Allen" a0a0c8cfec3a test:0.1
```
æäº¤æååï¼ä¼è¿åæ°å建çéå ID ä¿¡æ¯ï¼å¦ä¸å¾æç¤ºï¼

忬¡æ¥çæ¬å°éåä¿¡æ¯ï¼å¯ä»¥çå°æ°å建ç `test:0.1` éåäºï¼

### 5.2 åºäº Dockerfile å建
éè¿ Dockerfile çæ¹å¼æ¥å建éåï¼æ¯æå¸¸è§çä¸ç§æ¹å¼äºï¼ä¹æ¯æ¯è¾æ¨èçæ¹å¼ãDockerfile æ¯ä¸ä¸ªææ¬æä»¤æä»¶ï¼å®æè¿°äºæ¯å¦ä½åºäºä¸ä¸ªç¶éåï¼æ¥å建ä¸ä¸ªæ°éåçè¿ç¨ã
ä¸é¢è®©æä»¬æ¥ç¼åä¸ä¸ªç®åç Dockerfile æä»¶ï¼å®æè¿°äºåºäº Ubuntu ç¶éåï¼å®è£
Python3 ç¯å¢çéåï¼
```
FROM docker.io/ubuntu:latest
LABEL version="1.0" maintainer="Allen