Loading... ### Docker 镜像 Docker 镜像(Docker Image)是用于创建 Docker 容器(Docker Container)的只读模板。它包含了运行应用程序所需的所有内容,包括代码、运行时环境、库和依赖项以及配置文件等。Docker 镜像是 Docker 容器的基础,每个容器都是从一个特定的镜像实例化而来的。 #### 一、Docker 镜像的基本概念 ##### 1. 镜像的层(Layers) Docker 镜像由多个只读层(layers)组成,每一层都代表镜像的一个变更。镜像层采用分层存储技术,这样可以提高存储效率并实现共享。每个层都是对前一个层的增量更新。 ##### 2. 基础镜像和自定义镜像 - **基础镜像(Base Image)**:基础镜像是没有父镜像的镜像,通常包括一个操作系统的最小安装。 - **自定义镜像(Custom Image)**:自定义镜像是在基础镜像之上添加了特定应用程序和配置的镜像。 #### 二、创建 Docker 镜像 Docker 镜像可以通过多种方式创建,最常用的方法是使用 Dockerfile。 ##### 1. Dockerfile 简介 Dockerfile 是一个文本文件,包含了一系列命令,用于构建 Docker 镜像。每条命令都会在镜像中创建一个新的层。 ##### 2. Dockerfile 示例 以下是一个简单的 Dockerfile 示例,用于创建一个包含 Nginx 服务器的镜像: ```dockerfile # 使用官方 Nginx 基础镜像 FROM nginx:latest # 维护者信息 MAINTAINER your_name@example.com # 拷贝自定义的 Nginx 配置文件到镜像中 COPY nginx.conf /etc/nginx/nginx.conf # 暴露端口 EXPOSE 80 # 启动 Nginx 服务 CMD ["nginx", "-g", "daemon off;"] ``` ##### 3. 构建 Docker 镜像 使用 Dockerfile 创建镜像的命令如下: ```sh docker build -t mynginx:latest . ``` 这条命令将在当前目录查找 Dockerfile 并构建一个名为 `mynginx` 的镜像。 #### 三、管理 Docker 镜像 ##### 1. 查看本地镜像 使用以下命令查看本地所有 Docker 镜像: ```sh docker images ``` 输出示例如下: ```plaintext REPOSITORY TAG IMAGE ID CREATED SIZE mynginx latest d1b55e34b8e6 10 minutes ago 133MB nginx latest f356bdc56db4 2 weeks ago 133MB ``` ##### 2. 删除本地镜像 使用以下命令删除本地 Docker 镜像: ```sh docker rmi <image_id> ``` 例如,删除镜像 ID 为 `d1b55e34b8e6` 的镜像: ```sh docker rmi d1b55e34b8e6 ``` ##### 3. 从 Docker Hub 拉取镜像 Docker Hub 是一个公共的镜像仓库,用户可以从中拉取(下载)镜像: ```sh docker pull nginx:latest ``` 这条命令将拉取最新版本的 Nginx 镜像。 #### 四、使用 Docker 镜像 ##### 1. 运行容器 从镜像运行一个容器的命令如下: ```sh docker run -d -p 80:80 mynginx:latest ``` 这条命令将从 `mynginx:latest` 镜像启动一个容器,容器的80端口映射到主机的80端口。 ##### 2. 进入运行中的容器 可以通过以下命令进入一个运行中的容器: ```sh docker exec -it <container_id> /bin/bash ``` 例如,进入容器 ID 为 `e9fbc837b4a8` 的容器: ```sh docker exec -it e9fbc837b4a8 /bin/bash ``` ##### 3. 停止容器 使用以下命令停止一个运行中的容器: ```sh docker stop <container_id> ``` #### 五、示意图 ```plaintext Docker 镜像结构 │ ├── 基础镜像(Base Image) │ └── FROM 命令 │ ├── 镜像层(Layers) │ ├── COPY 命令 │ ├── RUN 命令 │ └── ADD 命令 │ ├── 构建镜像 │ └── docker build -t <image_name>:<tag> . │ ├── 管理镜像 │ ├── 查看镜像:docker images │ ├── 删除镜像:docker rmi <image_id> │ └── 拉取镜像:docker pull <image_name>:<tag> │ └── 使用镜像 ├── 运行容器:docker run -d -p <host_port>:<container_port> <image_name>:<tag> ├── 进入容器:docker exec -it <container_id> /bin/bash └── 停止容器:docker stop <container_id> ``` #### 六、总结 Docker 镜像是 Docker 容器的基础,包含了运行应用程序所需的一切。通过 Dockerfile 可以方便地创建自定义镜像,并且利用 Docker 提供的命令可以轻松管理和使用这些镜像。掌握 Docker 镜像的创建、管理和使用,是进行容器化应用开发和部署的基础技能。希望本文能帮助读者更好地理解 Docker 镜像的概念和操作,提高开发和运维效率。 最后修改:2024 年 08 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏