ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
Dockerfile 其实一个文本文件,其中包含了若干个符合 Docker 解析规范的指令,指令描述了构建镜像的步骤或者一些细节。 #### Nginx 小例子 首先,我们新建一个简单的 Dockerfile,文件名就叫做`Dockerfile`,其内容如下: ~~~bash FROM nginx RUN echo '<h1>SpringCloud-Docker</h1>' > /usr/share/nginx/html/index.html ~~~ 上面的 Dockerfile 基于 nginx 镜像修改了 index.html 首页,首页显示`SpringCloud-Docker`内容。 我们可以通过 Docker 来构建此镜像并运行: ~~~bash docker build -t nginx-demo . docker run -p 8080:80 nginx-demo ~~~ 随后访问`http://localhost:8080`得到如下响应: ![](https://img.kancloud.cn/45/51/4551439e6849f4efe72eebe633d4456f_820x554.png) 或者控制台执行如下指令: ~~~bash curl localhost:8080 ~~~ 响应如下: ~~~bash <h1>SpringCloud-Docker</h1> ~~~ #### 常见指令 上面的 Dockerfile 提到了 FROM、RUN 指令。事实上,Dockerfile 有十多个指令,一般格式是:`指令名称 参数`。 * FROM 指定基础镜像:`FROM <image>:<tag>` 比如基于 Java JDK 环境的镜像:`openjdk:8-jre-alpine:latest` * ADD 复制文件:`ADD <src> <dest>` 从`src`目录复制文件到容器的`dest`目录,其中 src 可以是 Dockerfile 所在目录的相对路径,也可以是一个 URL,还可以是一个压缩包。 * COPY 复制文件:`COPY <src> <dest>` COPY 和 ADD 指令类似,COPY 不支持 URL 的压缩包。 * ENTRYPOINT 入口点:`ENTRYPOINT command param1 param2` 指定 Docker 容器启动时执行的命令。 更多指令可以参考[官方文档](https://docs.docker.com/engine/reference/builder/),这里不一一讲解。接下来开始对我们前面的 Eureka Server 微服务进行改造,使其运行在 Docker 容器中。