安装docker
https://dockerdocs.cn/get-docker/
构建第一个镜像
1.创建flask应用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def test():
return 'ok111'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1111)
目录结构如下:
2.在项目根目录创建一个Dockerfile文件,输入以下内容
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py" ]
命令解析:
- # syntax解析器指令 可选,提示用什么语法解析Dockerfile
- FROM python:3.8-slim-buster 使用已经具有运行Python应用程序所需的所有工具和软件包的官方Python镜像,而不是创建自己的基本镜像
- WORKDIR /app, 指示Docker使用此路径作为所有后续命令的默认位置
- COPY . . 获取当前目录中的所有文件,并将它们复制到镜像中
- RUN pip install -r requirements.txt 执行安装依赖包命令
- CMD ["python", "app.py" ] 告诉Docker在容器中执行镜像时要运行什么命令 (python app.py)
目录结构如下
3.构建镜像
docker build --tag <镜像名称> .
该docker build命令从Dockerfile和“上下文”构建Docker映像。构建的上下文是位于指定PATH或URL中的文件集。Docker构建过程可以访问此上下文中的任何文件。
构建命令可以选择带有--tag标志。标签用于设置镜像名称和格式的可选标签name:tag。我们现在将省略可选项tag以简化操作。如果您不传递标签,Docker将使用“最新”作为其默认标签。您可以在构建输出的最后一行中看到这一点。
4.查看本地镜像
docker images
5.标记镜像
docker tag <原始镜像名>:<原始镜像tag> <新镜像名>:<新镜像tag>
该docker tag命令为镜像创建一个新标签。它不会创建新镜像。标签指向相同的镜像,并且是引用镜像的另一种方法。
6.删除镜像
docker rmi <镜像名>:<tag号>