在 Docker 中,可使用 docker build
命令依据 Dockerfile 构建镜像。下面为你详细介绍构建镜像的具体方式。
基本构建命令
若要构建镜像,需在包含 Dockerfile 的目录下执行 docker build
命令。基本语法如下:
bash
docker build -t <镜像名称>:<标签> <构建上下文路径>
参数解释:
-t
:用于给构建的镜像添加标签,格式为镜像名称:标签
,若不指定标签,默认为latest
。<构建上下文路径>
:这是一个目录路径,Docker 会将该目录下的所有文件和文件夹作为构建上下文发送给 Docker 守护进程。
示例
假设你有一个简单的 Python Flask 应用,其目录结构和文件内容如下:
plaintext
app/
├── app.py
└── Dockerfile
app.py
文件内容
python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
Dockerfile
文件内容
Dockerfile
# 使用 Python 3.9 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制当前目录下的所有文件到工作目录
COPY . .
# 安装依赖
RUN pip install flask
# 暴露端口
EXPOSE 5000
# 运行应用
CMD ["python", "app.py"]
构建镜像
在 app
目录下执行以下命令来构建镜像:
bash
docker build -t my-flask-app:1.0 .
这里的 .
代表当前目录,也就是构建上下文路径。
其他构建选项
- 指定 Dockerfile 文件:若 Dockerfile 不在当前目录或者文件名不是
Dockerfile
,可以使用-f
选项指定 Dockerfile 文件的路径。
bash
docker build -t my-flask-app:1.0 -f path/to/Dockerfile .
- 禁用缓存:构建时可以使用
--no-cache
选项禁用 Docker 构建缓存,这样每次构建都会重新执行所有步骤。
bash
docker build --no-cache -t my-flask-app:1.0 .
构建后的验证
构建完成后,可使用 docker images
命令查看本地已构建的镜像:
bash
docker images
你应该能看到 my-flask-app:1.0
镜像列在其中。
运行镜像
构建好镜像后,你可以使用 docker run
命令来运行容器:
bash
docker run -p 5000:5000 my-flask-app:1.0
这里的 -p 5000:5000
表示将容器的 5000 端口映射到主机的 5000 端口。之后,你就可以通过浏览器访问 http://localhost:5000
来查看应用的输出