docker file 学习文档
时间: 2023-12-08 21:05:13 浏览: 121
Docker学习文档
Docker 是一种容器技术,它允许开发人员将应用程序和相关依赖项打包到一个可移植的容器中,并在多个环境中运行这些容器。在 Docker 中,Dockerfile 是用于构建 Docker 镜像的指令文件。本文将介绍如何编写 Dockerfile,并构建一个基本的 Docker 镜像。
## Dockerfile 基本结构
Dockerfile 是一个文本文件,包含一系列指令,用于描述如何构建 Docker 镜像。它的基本结构如下:
```
# Comment
INSTRUCTION arguments
```
其中,`#` 表示注释,`INSTRUCTION` 是指令名称,`arguments` 是指令的参数。
## Dockerfile 指令
Dockerfile 中常用的指令如下:
### FROM
`FROM` 指令指定要使用的基础镜像。例如:
```
FROM ubuntu:18.04
```
### RUN
`RUN` 指令在容器中运行命令。例如:
```
RUN apt-get update && apt-get install -y nginx
```
### COPY
`COPY` 指令将本地文件或目录复制到容器中。例如:
```
COPY index.html /usr/share/nginx/html/
```
### WORKDIR
`WORKDIR` 指令设置容器内部的工作目录。例如:
```
WORKDIR /usr/share/nginx/html/
```
### EXPOSE
`EXPOSE` 指令指定容器运行时监听的端口。例如:
```
EXPOSE 80
```
### CMD
`CMD` 指令指定容器启动时要运行的命令。例如:
```
CMD ["nginx", "-g", "daemon off;"]
```
## Dockerfile 示例
下面是一个简单的 Dockerfile 示例,用于构建一个运行 Nginx 的 Docker 镜像。
```
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y nginx
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
```
在当前目录下创建一个名为 `Dockerfile` 的文件,并将上述内容复制到文件中。然后,在命令行中进入到该目录,并运行以下命令:
```
docker build -t my-nginx .
```
该命令将使用 `Dockerfile` 中的指令构建一个名为 `my-nginx` 的 Docker 镜像。`.` 表示 Dockerfile 所在的当前目录。
构建完成后,可以使用以下命令运行该镜像:
```
docker run -p 8080:80 my-nginx
```
该命令将启动一个名为 `my-nginx` 的容器,并将容器内部的 80 端口映射到本地的 8080 端口。打开浏览器,访问 `http://localhost:8080` 即可看到 Nginx 的欢迎页面。
## 总结
本文介绍了 Dockerfile 的基本结构和常用指令,并给出了一个简单的 Dockerfile 示例。Dockerfile 是构建 Docker 镜像的核心文件,掌握 Dockerfile 的编写技巧可以帮助开发人员快速构建自己的 Docker 镜像。
阅读全文