08-27-周三_17-09-29
This commit is contained in:
118
Docker/Docker镜像管理.md
Normal file
118
Docker/Docker镜像管理.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# 镜像
|
||||
容器是一个独立的进程,它从哪里获取文件和配置?如何共享这些环境?
|
||||
|
||||
镜像是一个标准化包,其中包含运行容器所需的所有文件、二进制文件、库和配置。
|
||||
- MySQL 镜像会打包数据库二进制文件、配置文件和其他依赖项。
|
||||
- Python Web 应用镜像会打包 Python 运行时、应用代码及其所有依赖项。
|
||||
|
||||
镜像两个重要原则:
|
||||
1. 镜像是不可变的。一旦创建,就无法修改。只能创建新镜像或在其上进行更改。
|
||||
2. 镜像由层组成。每一层代表一组文件系统变更,包括添加、删除或修改文件。
|
||||
|
||||
|
||||
# 镜像管理
|
||||
## 搜索镜像
|
||||
`Usage: docker search [OPTIONS] TERM`
|
||||
```bash
|
||||
# 搜索包含关键字的镜像
|
||||
[root@docker-server ~]# docker search centos
|
||||
```
|
||||
可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、点赞数(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建。默认输出结果按照星级评价进行排序。
|
||||
|
||||

|
||||
|
||||
|
||||
## 下载镜像
|
||||
`Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]`
|
||||
```bash
|
||||
# 下载nginx、centos、hello-world镜像
|
||||
[root@docker-server ~]# docker pull nginx
|
||||
[root@docker-server ~]# docker pull centos
|
||||
[root@docker-server ~]# docker pull hello-world
|
||||
```
|
||||
其中,NAME是镜像名称,TAG是镜像的标签(往往用来是表示版本信息),通常情况下,描述一个镜像需要包括名称+标签,如果不指定标签,标签的值默认为latest。
|
||||
|
||||
|
||||
## 镜像列表
|
||||
`Usage: docker image COMMAND`
|
||||
```bash
|
||||
# 列出本地所有镜像
|
||||
[root@docker-server ~]# docker image ls
|
||||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||
nginx latest d1a364dc548d 2 weeks ago 133MB
|
||||
...
|
||||
|
||||
# 字段说明
|
||||
- REPOSITORY:镜像仓库名称
|
||||
- TAG:镜像的标签信息
|
||||
- 镜像ID:唯一用来标识镜像,如果两个镜像的ID相同,说明他们实际上指向了同一个镜像,只是具有不同标签名称而已
|
||||
- CREATED:创建时间,说明镜像的最后更新时间
|
||||
- SIZE:镜像大小,优秀的镜像往往体积都较小
|
||||
```
|
||||
|
||||
|
||||
## 镜像标签
|
||||
`Usage: docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]`
|
||||
```bash
|
||||
[root@docker-server ~]# docker tag centos:latest mycentos:latest
|
||||
[root@docker-server ~]# docker images
|
||||
REPOSITORY TAG IMAGE ID CREATED SIZE
|
||||
nginx latest d1a364dc548d 2 weeks ago 133MB
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
## 镜像信息
|
||||
`Usage: docker image inspect [OPTIONS] IMAGE [IMAGE...]`
|
||||
```bash
|
||||
[root@docker-server ~]# docker inspect centos:latest
|
||||
[
|
||||
{
|
||||
"Id": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
|
||||
"RepoTags": [
|
||||
"centos:latest",
|
||||
"mycentos:latest"
|
||||
]
|
||||
...
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## 镜像创建信息
|
||||
`Usage: docker image history [OPTIONS] IMAGE`
|
||||
```bash
|
||||
[root@docker-server ~]# docker history centos:latest
|
||||
IMAGE CREATED CREATED BY SIZE COMMENT
|
||||
300e315adb2f 6 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
|
||||
...
|
||||
```
|
||||
|
||||
## 镜像导出
|
||||
`Usage: docker image save [OPTIONS] IMAGE [IMAGE...]`
|
||||
```bash
|
||||
[root@docker-server ~]# docker image save centos:latest -o /opt/centos.tar.gz
|
||||
[root@docker-server ~]# ll /opt/centos.tar.gz
|
||||
-rw------- 1 root root 216535040 6月 9 10:33 /opt/centos.tar.gz
|
||||
[root@docker-server ~]# docker image save centos:latest > /opt/centos-1.tar.gz
|
||||
[root@docker-server ~]# ll /opt/centos-1.tar.gz
|
||||
-rw-r--r-- 1 root root 216535040 6月 9 10:35 /opt/centos-1.tar.gz
|
||||
```
|
||||
|
||||
## 镜像导入
|
||||
`Usage: docker image load [OPTIONS]`
|
||||
```bash
|
||||
[root@docker-server ~]# docker image load -i /opt/centos.tar.gz
|
||||
Loaded image: centos:latest
|
||||
[root@docker-server ~]# docker image load < /opt/centos.tar.gz
|
||||
Loaded image: centos:latest
|
||||
```
|
||||
|
||||
## 删除镜像
|
||||
`Usage: docker image rm [OPTIONS] IMAGE [IMAGE...]`
|
||||
```bash
|
||||
[root@docker-server ~]# docker image rm nginx:latest
|
||||
Untagged: nginx:latest
|
||||
Untagged: nginx@sha256:6d75c99af15565a301e48297fa2d121e15d80ad526f8369c526324f0f7ccb750
|
||||
[root@docker-server ~]# docker image rm 300e315adb2f
|
||||
...
|
||||
```
|
Reference in New Issue
Block a user