網(wǎng)站首頁 編程語言 正文
docker 中的三大基本概念
鏡像
鏡像就是啟動一個容器的模板。
容器
容器就是對外提供服務(wù)的進(jìn)程。或者容器就是鏡像啟動起來的一個實(shí)例。
倉庫
倉庫是用來存放鏡像的地方。
docker 鏡像相關(guān)命令
常用鏡像倉庫
官方倉庫:hub.docker.com
自己的私有倉庫:Harbor
阿里云私有倉庫:registry.cn-hangzhou.aliyuncs.com
搜索鏡像
#格式
docker search [鏡像名稱]
# 實(shí)例
拉取鏡像
# 格式
docker pull [鏡像名稱]
# 實(shí)例
[root@Centos7 ~]# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
# 鏡像層
a076a628af6f: Already exists
f40dd07fe7be: Pull complete
ce21c8a3dbee: Pull complete
ee99c35818f8: Pull complete
56b9a72e68ff: Pull complete
3f703e7f380f: Pull complete
# 鏡像ID號(鏡像ID號是全球唯一)
Digest: sha256:0f97c1c9daf5b69b93390ccbe8d3e2971617ec4801fd0882c72bf7cad3a13494
# 鏡像下載狀態(tài)
Status: Downloaded newer image for redis:latest
# 鏡像的全稱(鏡像的tag)
docker.io/library/redis:latest
查看當(dāng)前系統(tǒng)上的有哪些鏡像
# 格式
docker images 或者 docker image ls
# 參數(shù)
-q : 只顯示鏡像ID
[root@Centos7 ~]# docker images -q
621ceef7494a
f6d0b4767a6c
獲取鏡像的詳細(xì)信息
# 格式
docker inspect [鏡像名稱或鏡像ID]
# 參數(shù)
-f : 格式化輸出
[root@Centos7 ~]# docker inspect -f '{{.Id}}' 621ceef7494a
sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb
[root@Centos7 ~]# docker inspect -f '{{.ContainerConfig.Hostname}}' redis
16535cfaf84a
登錄鏡像倉庫
# 格式
docker login
注: 默認(rèn)情況下,docker login登錄的是官方倉庫,如果登錄其他鏡像倉庫則需要指定鏡像倉庫的URL連接。
# 實(shí)例
[root@Centos7 ~]# docker login registry.cn-hangzhou.aliyuncs.com
Username: yangyang091022
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@Centos7 ~]# cat ~/.docker/config.json
{
"auths": {
"registry.cn-hangzhou.aliyuncs.com": {
"auth": "eWFuZ3lhbmcwOTEwMjI6Y2hlbjE4NzkwMDcwODMw"
}
}
}
# 參數(shù)
--username|-u : 指定用戶名
--password|-p : 指定密碼
為鏡像標(biāo)簽
# 鏡像標(biāo)簽的構(gòu)成
docker.io/library/redis:latest
docker.io : 鏡像倉庫的URL
library :鏡像倉庫命名空間
redis : 鏡像名稱
latest : 鏡像版本號
# 打標(biāo)簽
# 格式
docker tag [鏡像ID] 鏡像標(biāo)簽
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 621ceef7494a 2 months ago 104MB
nginx latest f6d0b4767a6c 2 months ago 133MB
[root@Centos7 ~]# docker tag 621ceef7494a registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 621ceef7494a 2 months ago 104MB
registry.cn-hangzhou.aliyuncs.com/alvinos/redis v2 621ceef7494a 2 months ago 104MB
nginx latest f6d0b4767a6c 2 months ago 133MB
鏡像上傳
# 格式
docker push [鏡像標(biāo)簽]
# 注:要想上傳鏡像,首先得登錄鏡像倉庫,其次設(shè)置對應(yīng)鏡像倉庫的tag
[root@Centos7 ~]# docker push registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/alvinos/redis]
3480f9cdd491: Pushed
a24a292d0184: Pushed
f927192cc30c: Pushed
1450b8f0019c: Pushed
8e14cb7841fa: Pushed
cb42413394c4: Pushed
v2: digest: sha256:7ef832c720188ac7898dbd8d1e237b0738e94f94fc7e981cb7b8efe84555e892 size: 1572
鏡像的刪除
# 格式
docker rmi [鏡像名稱或者鏡像ID]
# 實(shí)例
[root@Centos7 ~]# docker rmi nginx
# 參數(shù)
-f : 強(qiáng)制刪除
[root@Centos7 ~]# docker rmi -f nginx
Untagged: nginx:latest
Untagged: nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
# 注:當(dāng)有容器正在使用鏡像時,強(qiáng)制刪除鏡像,只能刪除鏡像的所有tag, 不會刪除鏡像。
清空鏡像
# 格式
docker image prune
# 實(shí)例
[root@Centos7 ~]# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
# 參數(shù)
-a : 刪除所有鏡像
[root@Centos7 ~]# docker image prune -a
WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: redis:latest
untagged: redis@sha256:0f97c1c9daf5b69b93390ccbe8d3e2971617ec4801fd0882c72bf7cad3a13494
untagged: registry.cn-hangzhou.aliyuncs.com/alvinos/redis:v2
untagged: registry.cn-hangzhou.aliyuncs.com/alvinos/redis@sha256:7ef832c720188ac7898dbd8d1e237b0738e94f94fc7e981cb7b8efe84555e892
deleted: sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb
deleted: sha256:de66cfbf4712b8ba9ef292e08ef7487be26d9d21b350548e400ae351405d820e
deleted: sha256:79b2381e35429e8fc04d31b3445f069c22d288bf5c4cba7b7c10004ff78ae201
deleted: sha256:1d047d19be363b00139990d4d7f392dabdb0809dbc9d0fbe67c1f15b8caed27a
deleted: sha256:8c41f4e708c37059df28ae1cabc200a6db2fee45bd3a2cadcf70f2765bb68730
deleted: sha256:b51317bef36fe1900be48402c8a41fcd9cdb6b8950c10209f764473cb8323371
Total reclaimed space: 35.04MB
[root@Centos7 ~]#
查看鏡像歷史(鏡像的構(gòu)建歷史)
# 格式
docker history [鏡像ID或鏡像名稱]
# 實(shí)例
[root@Centos7 ~]# docker history alpine
IMAGE CREATED CREATED BY SIZE COMMENT
7731472c3f2a 2 months ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 2 months ago /bin/sh -c #(nop) ADD file:edbe213ae0c825a5b… 5.61MB
保存鏡像(commit)
# 保存正在運(yùn)行的容器直接為鏡像
# 格式:
docker commit [容器ID|容器名稱]
# 實(shí)例
[root@Centos7 ~]# docker commit -a "Alvin" -m "這是一個docker鏡像" -p be3b92e2886b test:v1
sha256:4a06cd2af42877b5e2908073061f7ae1bf9e308a470bdfc0c6f906ef368aaed8
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test v1 4a06cd2af428 5 seconds ago 104MB
保存鏡像(import/export)
# 保存正在運(yùn)行的容器為鏡像壓縮包
## 保存容器為鏡像
docker export [容器的ID] > [包名稱]
# 實(shí)例
[root@Centos7 ~]# docker export be3b92e2886b > redis.tar
[root@Centos7 ~]# ll | grep redis
-rw-r--r--. 1 root root 104178688 Mar 18 17:30 redis.tar
## docker import [包名稱] [自定義鏡像名稱]
# 實(shí)例
[root@Centos7 ~]# docker import redis.tar test:v3
sha256:7776db3402fb8d59f6121a3b1977b5e7016f4064cf59218fd1b06637cb0fca87
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test v3 7776db3402fb 6 seconds ago 101MB
保存鏡像(save/load)
# 保存鏡像為壓縮包
# 保存鏡像的格式:
docker save [鏡像名稱|鏡像ID] > [包名稱]
[root@Centos7 ~]# docker save 7731472c3f2a > apline.tar
[root@Centos7 ~]# ll
-rw-r--r--. 1 root root 5888000 Mar 18 17:36 apline.tar
[root@Centos7 ~]# docker save -o apline-two.tar 7731472c3f2a
[root@Centos7 ~]# ll
total 148692
-rw-r--r--. 1 root root 5888000 Mar 18 17:36 apline.tar
-rw-------. 1 root root 5888000 Mar 18 17:37 apline-two.tar
# 導(dǎo)入鏡像的格式:
docker load < [包名稱]
[root@Centos7 ~]# docker load < apline.tar
c04d1437198b: Loading layer [========================================>] 5.88MB/5.88MB
Loaded image ID: sha256:7731472c3f2a25edbb9c085c78f42ec71259f2b83485aa60648276d408865839
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 7731472c3f2a 2 months ago 5.61MB
# 注:save/load保存鏡像無法自定義鏡像名稱,save保存鏡像時如果使用ID保存則load導(dǎo)入鏡像無名稱,使用名稱導(dǎo)入時才有名稱。
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 2 months ago 1.23MB
[root@Centos7 ~]# docker save busybox:latest > busybox.tar
[root@Centos7 ~]# ll
total 150120
-rw-r--r--. 1 root root 1459200 Mar 18 17:43 busybox.tar
[root@Centos7 ~]# docker rmi b97242f89c8a
Untagged: busybox:latest
Untagged: busybox@sha256:c5439d7db88ab5423999530349d327b04279ad3161d7596d2126dfb5b02bfd1f
Deleted: sha256:b97242f89c8a29d13aea12843a08441a4bbfc33528f55b60366c1d8f6923d0d4
Deleted: sha256:0064d0478d0060343cb2888ff3e91e718f0bffe9994162e8a4b310adb2a5ff74
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@Centos7 ~]# docker load < busybox.tar
0064d0478d00: Loading layer [==================================================>] 1.45MB/1.45MB
Loaded image: busybox:latest
[root@Centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest b97242f89c8a 2 months ago 1.23MB
保存鏡像三種方式的區(qū)別
1、export保存的鏡像體積要小于save(save保存更完全,export保存會丟掉一些不必要的數(shù)據(jù))
2、export可以重命名鏡像名稱而save則不行
3、save可以同時保存多個鏡像而export則不行
原文鏈接:https://www.cnblogs.com/guyouyin123/p/15010838.html
相關(guān)推薦
- 2022-05-10 筆記本能連接 WiFi,但在瀏覽器中并不能訪問網(wǎng)頁的問題的四種方案;
- 2023-06-20 React?DOM-diff?節(jié)點(diǎn)源碼解析_React
- 2023-03-20 C#如何刪除指定文件或文件夾_C#教程
- 2024-01-13 LocalDate、LocalDateTime與timestamp、Date的轉(zhuǎn)換
- 2024-01-12 間隙鎖(Gap Lock)
- 2022-04-01 SQL?Server?索引和視圖詳解_MsSql
- 2022-03-21 詳解C語言動態(tài)內(nèi)存的分配_C 語言
- 2022-06-22 Android開發(fā)保存QQ密碼功能_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支