Docker学习 | Dockerfile构建基础
2023-11-09 14:36:47
Docker 学习 丨 Dockerfile 构建基础
没有环境怎么办?有 dockerfile 就好啦!
Dockerfile 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
构建步骤:
- 编写一个 dockerfile 文件
- docker build 构建成为一个镜像
- docker run 运行这个镜像
Dockerfile文件
接下来,我们编写一个 Dockerfile 文件。
FROM debian:latest
这个指令指定了基础镜像,也就是我们的构建将从这里开始。
RUN apt-get update && apt-get install -y nginx
这个指令安装了 Nginx web 服务器。它使用 && 符号连接两个命令,这样当第一个命令成功执行后,第二个命令才会执行。
COPY index.html /usr/share/nginx/html
这个指令将 index.html 文件从当前目录复制到容器的 /usr/share/nginx/html 目录。
EXPOSE 80
这个指令告诉 Docker 将容器的 80 端口映射到主机的 80 端口。这样,当您在浏览器中访问 http://localhost 时,就可以看到您的网页了。
构建镜像
使用以下命令构建镜像:
docker build -t my-nginx .
这个命令将在当前目录中查找 Dockerfile 文件,并使用它来构建一个名为 my-nginx 的镜像。
运行镜像
使用以下命令运行镜像:
docker run -p 80:80 my-nginx
这个命令将启动一个新的容器,并将其映射到主机的 80 端口。当您在浏览器中访问 http://localhost 时,就可以看到您的网页了。
Dockerfile 中常用的指令
FROM:指定基础镜像
RUN:运行命令
COPY:复制文件或目录到容器
ADD:复制文件或目录到容器,并允许使用 tar 解压
EXPOSE:声明容器需要开放的端口
CMD:指定容器启动时要运行的命令
ENTRYPOINT:指定容器启动时要运行的程序
结语
通过使用 Dockerfile,我们可以轻松地构建和运行容器。这使得 Docker 成为开发、测试和部署应用程序的理想工具。
扩展
如何在 Dockerfile 中指定环境变量?
可以使用 ENV 指令来指定环境变量。例如:
ENV PORT 8080
如何在 Dockerfile 中添加多个命令?
可以使用 && 或 ; 符号来连接多个命令。例如:
RUN apt-get update && apt-get install -y nginx
如何在 Dockerfile 中添加注释?
可以使用 # 符号来添加注释。注释不会被 Dockerfile 解析器解释。例如:
# This is a comment