Docker 镜像使用

Docker 镜像使用关键要点

  • 研究表明,Docker 镜像是创建容器的模板,包含应用程序及其依赖,适合在不同环境中一致运行。
  • 常用操作包括列出本地镜像、运行容器、拉取新镜像、搜索镜像、删除镜像、创建和发布镜像。
  • 中国用户可能因网络限制需配置国内镜像源(如 https://docker.xuanyuan.me/),建议定期检查可用性。

列出本地镜像

使用 docker imagesdocker image ls 查看本地所有镜像,输出包括仓库名、标签、镜像 ID、大小等信息。
例如:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
ubuntu               14.04               188d0a23f263        2 years ago         188 MB  
php                  5.6                 750e9b335c1a        2 years ago         444.8 MB  

运行容器

docker run 启动容器,例如 docker run -t -i ubuntu:15.10 /bin/bash-i 交互式,-t 分配终端,不指定标签默认用 latest

拉取和搜索镜像

  • docker pull ubuntu:13.10 从 Docker Hub 或镜像源拉取新镜像。
  • docker search httpd 搜索镜像,也可在 Docker Hub 网站搜索:https://hub.docker.com/。

管理镜像

  • 删除镜像用 docker rmi hello-world,需先停止使用该镜像的容器。
  • 创建镜像可从容器提交(如 docker commit)或用 Dockerfile 构建(如 docker build -t runoob/centos:6.7 .)。
  • docker tag 为镜像添加标签,如 docker tag 860c279d2fec runoob/centos:dev

中国用户优化

由于网络限制,建议配置国内镜像源(如 https://docker.1ms.run),编辑 /etc/docker/daemon.json 添加 "registry-mirrors" 配置,重启 Docker。



Docker 镜像使用详细报告

Docker 镜像(Docker Image)是 Docker 容器的静态模板,用于创建和运行容器。它包含了应用程序运行所需的所有依赖、文件系统和配置,使得应用程序可以在任何支持 Docker 的环境中一致运行。以下是 Docker 镜像使用的全面讲解,涵盖基本操作、创建与管理、以及针对中国用户的优化建议,基于 2025 年 7 月 21 日的最新信息。

背景与概述

Docker 是一种开源容器化平台,基于操作系统级别的虚拟化,允许开发者将应用程序及其依赖封装到一个可移植的容器中。镜像是 Docker 的核心概念,是容器的构建基础。研究表明,Docker 镜像广泛用于开发、测试和生产环境,解决了传统虚拟机资源占用高、启动慢的问题。特别是在中国大陆,由于网络限制(如 GFW),直接从 Docker Hub 拉取镜像可能速度缓慢或失败,配置国内镜像源是关键步骤。

系统要求与准备

使用 Docker 镜像前,确保满足以下条件:

  • 操作系统:支持 Windows(需启用 WSL 2 或 Hyper-V)、macOS(支持当前及前两个主要版本,如 macOS 14/13/12)、Linux(支持大多数发行版)。
  • Docker 版本:推荐使用最新版本(如 Docker CE)。
  • 网络:需访问 Docker Hub 或国内镜像源,建议配置加速器。

以下表格总结了系统要求:

类别详情
操作系统Windows 10/11、macOS 12+、Linux
Docker 版本1.10 及以上,推荐最新版本
网络访问 Docker Hub 或国内镜像源(如 https://docker.xuanyuan.me/)

Docker 镜像的基本概念

  • 什么是 Docker 镜像?
    Docker 镜像是一个只读的模板,用于创建 Docker 容器。它包含了运行应用程序所需的所有依赖和文件(如代码、运行时环境、库、环境变量和配置文件)。镜像是 Docker 容器的基础,容器是从镜像创建的运行实例。镜像可以从 Docker Hub 或其他仓库拉取,也可以自己构建。
  • 镜像与容器的关系
  • 镜像(Image):容器的静态模板,包含了应用程序运行所需的所有依赖和文件。镜像是不可变的。
  • 容器(Container):镜像的运行实例,动态的,具有自己的文件系统、进程和网络。

详细使用步骤

以下步骤基于最新 Docker 版本(截至 2025 年 7 月 21 日),适用于 Windows、macOS 和 Linux,并特别为中国用户优化。

1. 列出本地镜像

使用命令 docker imagesdocker image ls 来查看本地主机上的所有 Docker 镜像。

示例输出:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE  
ubuntu               14.04               188d0a23f263        2 years ago         188 MB  
php                  5.6                 750e9b335c1a        2 years ago         444.8 MB  
  • 字段说明
  • REPOSITORY:镜像仓库名(如 ubuntu)。
  • TAG:镜像标签(如 14.04)。
  • IMAGE ID:镜像 ID。
  • CREATED:镜像创建时间。
  • SIZE:镜像大小。
2. 运行容器

使用 docker run 命令来运行一个容器,指定要使用的镜像。

示例:
“`bash
docker run -t -i ubuntu:15.10 /bin/bash

- **选项说明**:  
  - `-i`:交互式操作(保持标准输入打开)。  
  - `-t`:分配一个伪终端。  
  - `ubuntu:15.10`:指定镜像名和标签。  
  - `/bin/bash`:容器启动后执行的命令。  

**注意:**  
- 如果不指定标签,Docker 默认使用 `latest` 标签。  
- 如果本地不存在指定镜像,Docker 会自动从 Docker Hub 或配置的镜像源拉取。  

##### 3. 拉取新镜像  
使用 `docker pull` 命令从 Docker Hub 或其他仓库拉取镜像。  

**示例:**  

bash
docker pull ubuntu:13.10

- 如果本地不存在该镜像,Docker 会自动下载。  
- 对于中国用户,建议配置国内镜像源以加速拉取(详见第 9 节)。  

##### 4. 搜索镜像  
使用 `docker search` 命令在 Docker Hub 上搜索镜像。  

**示例:**  

bash
docker search httpd

- 也可以在 Docker Hub 网站上搜索:https://hub.docker.com/。  

##### 5. 删除镜像  
使用 `docker rmi` 命令删除本地镜像。  

**示例:**  

bash
docker rmi hello-world

- 如果镜像正在被容器使用,需先停止并删除容器,否则会提示错误。  

##### 6. 创建镜像  
Docker 镜像可以从容器创建或通过 Dockerfile 构建。  

- **从容器创建镜像**:  
  使用 `docker commit` 命令将容器的变化保存为新的镜像。  
  **示例:**  

bash
docker commit -m=”has update” -a=”runoob” e218edb10161 runoob/ubuntu:v2

  - `-m`:提交信息。  
  - `-a`:作者。  
  - `e218edb10161`:容器 ID。  
  - `runoob/ubuntu:v2`:新镜像名和标签。  

- **使用 Dockerfile 构建镜像**:  
  编写 Dockerfile,然后使用 `docker build` 命令构建镜像。  
  **示例:**  

bash
docker build -t runoob/centos:6.7 .

  - `-t`:指定新镜像名和标签。  
  - `.`:当前目录(Dockerfile 所在路径)。  

**Dockerfile 示例:**  

dockerfile
FROM centos:6.7
MAINTAINER runoob.com
RUN yum install -y httpd
EXPOSE 22 80
CMD [“/usr/sbin/apachectl”, “foreground”]

##### 7. 镜像标签  
使用 `docker tag` 命令为镜像添加标签。  

**示例:**  

bash
docker tag 860c279d2fec runoob/centos:dev

- `860c279d2fec`:镜像 ID。  
- `runoob/centos:dev`:新标签。  

##### 8. 发布镜像  
将自定义镜像发布到 Docker Hub 或其他仓库,以便他人使用。  

- **登录 Docker Hub:**  

bash
docker login

- **标记镜像:**  

bash
docker tag [imageName] [username]/[repository]:[tag]

  示例:`docker tag koa-demo:0.0.1 ruanyf/koa-demo:0.0.1`  
- **推送镜像:**  

bash
docker push [username]/[repository]:[tag]
`` 示例:docker push ruanyf/koa-demo:0.0.1`

9. 中国用户优化:配置镜像加速器

由于网络限制,中国用户可能需要配置国内镜像源来加速镜像拉取。

常用国内镜像源(截至 2025 年 7 月 21 日):
以下表格列出了一些常用国内镜像源,基于最新可用的信息:

镜像源地址备注
https://docker.xuanyuan.me/提供基础镜像,需测试可用性
https://docker.1ms.run热心网友自建,可能流量限制
https://docker.1panel.live支持部分常用镜像,建议定期检查

配置方法:

  • Linux(Docker 1.10+):
  1. 编辑 /etc/docker/daemon.json(若不存在则创建):
    json { "registry-mirrors": ["https://docker.xuanyuan.me/", "https://docker.1ms.run"] }
  2. 保存后重启 Docker:
    bash sudo systemctl restart docker
  • Windows/macOS(Docker Desktop):
  1. 打开 Docker Desktop,点击任务栏图标,选择 “Settings” > “Docker Engine”。
  2. 在 JSON 配置中添加:
    json { "registry-mirrors": ["https://docker.xuanyuan.me/", "https://docker.1ms.run"] }
  3. 点击 “Apply & Restart” 保存并重启 Docker。

注意事项:

  • 部分镜像源可能仅提供基础镜像或白名单镜像,如果某个地址无法拉取所需镜像,建议尝试其他地址。
  • 国内镜像源可能因政策或维护原因失效,建议定期检查可用性,参考最新列表如 https://www.coderjia.cn/archives/dba3f94c-a021-468a-8ac6-e840f85867ea。
10. 常见问题与解决方案

以下是使用 Docker 镜像时可能遇到的问题及解决方法:

问题可能原因解决方案
无法拉取镜像网络限制或未配置镜像源配置国内镜像源(如 https://docker.xuanyuan.me/),检查网络或使用 VPN
permission deniedLinux 用户权限不足使用 sudo 或添加用户到 Docker 组:sudo usermod -aG docker $USER
删除镜像失败镜像被容器使用先停止并删除使用该镜像的容器,然后重试 docker rmi
Dockerfile 构建失败Dockerfile 语法错误或依赖缺失检查 Dockerfile 语法,安装缺失依赖,重试构建

附加信息与资源

以下是本文参考的主要资源,供用户深入了解:

通过以上详细步骤和注意事项,用户应能顺利使用 Docker 镜像,并针对中国大陆的网络环境进行优化。如有进一步问题,可参考上述资源或搜索相关社区支持。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注