Docker 镜像简介
Docker 镜像是一个只读的模板,包含了运行应用程序所需的所有内容:代码、运行时、库、环境变量和配置文件。
搜索镜像
1 2 3 4 5
| docker search ubuntu
docker search nginx
|
拉取镜像
1 2 3 4 5 6 7 8
| docker pull ubuntu
docker pull ubuntu:20.04
docker pull nginx redis mysql
|
查看本地镜像
1 2 3 4 5 6 7 8 9 10 11
| docker images
docker image ls
docker images -q
docker images --no-trunc
|
删除镜像
1 2 3 4 5 6 7 8 9 10 11
| docker rmi ubuntu:20.04
docker rmi -f ubuntu:20.04
docker image prune
docker image prune -a
|
构建镜像
编写 Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13
| FROM ubuntu:20.04
RUN apt-get update && apt-get install -y \ python3 \ python3-pip
WORKDIR /app
COPY . /app
RUN pip3 install -r requirements.txt
CMD ["python3", "app.py"]
|
构建镜像
1 2 3 4 5 6 7 8
| docker build -t myapp:1.0 .
docker build -t myapp:1.0 -f /path/to/Dockerfile .
docker build --build-arg VERSION=1.0 -t myapp:$VERSION .
|
导出和导入镜像
导出镜像
1 2 3 4 5 6 7 8
| docker save -o ubuntu.tar ubuntu:20.04
docker save ubuntu:20.04 > ubuntu.tar
docker save -o images.tar ubuntu:20.04 nginx:latest
|
导入镜像
1 2 3 4 5 6 7 8
| docker load -i ubuntu.tar
docker load < ubuntu.tar
docker save ubuntu:20.04 | ssh user@remote 'docker load'
|
镜像标签管理
1 2 3 4 5
| docker tag ubuntu:20.04 myregistry.com/ubuntu:20.04
docker push myregistry.com/ubuntu:20.04
|
镜像分层原理
Docker 镜像采用分层存储结构:
- 基础层:操作系统或基础镜像
- 应用层:应用代码和依赖
- 配置层:配置文件和环境变量
这种分层结构使得镜像共享和更新更加高效。
最佳实践
- 使用官方基础镜像
- 选择合适的基础镜像版本
- 合理使用
.dockerignore 文件
- 利用构建缓存
- 保持镜像尽可能小
- 使用多阶段构建
总结
本文详细介绍了 Docker 镜像的管理操作,包括搜索、拉取、查看、删除、构建、导入导出等功能。下一篇文章将介绍容器的创建和管理。