docker使用-01镜像管理

安装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)

目录结构如下:
image

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镜像,而不是创建自己的基本镜像。
    FROM 是用于指定基础的 images ,一般格式为 FROM or FORM : ,所有的 Dockerfile 都用该以 FROM 开头,FROM 命令指明 Dockerfile 所创建的镜像文件以什么镜像为基础,FROM 以后的所有指令都会在 FROM 的基础上进行创建镜像。可以在同一个 Dockerfile 中多次使用 FROM 命令用于创建多个镜像

  • WORKDIR /app, 指示Docker使用此路径作为所有后续命令的默认位置

  • COPY . . 获取当前目录中的所有文件,并将它们复制到镜像中

  • RUN pip install -r requirements.txt 执行安装依赖包命令

  • CMD ["python", "app.py" ] 告诉Docker在容器中执行镜像时要运行什么命令 (python app.py)
    CMD 命令有三种格式:

    • CMD ["executable","param1","param2"]:推荐使用的 exec 形式。
    • CMD ["param1","param2"]:无可执行程序形式
    • CMD command param1 param2:shell 形式。

    一个 Dockerfile 中只能有一个CMD,如果有多个,则最后一个生效。
    CMD 命令会被 Docker 命令行传入的参数覆盖

目录结构如下
image

3.构建镜像

docker build --tag <镜像名称> .

该docker build命令从Dockerfile和“上下文”构建Docker映像。构建的上下文是位于指定PATH或URL中的文件集。Docker构建过程可以访问此上下文中的任何文件。
构建命令可以选择带有--tag标志。标签用于设置镜像名称和格式的可选标签name:tag。我们现在将省略可选项tag以简化操作。如果您不传递标签,Docker将使用“最新”作为其默认标签。您可以在构建输出的最后一行中看到这一点。
image

4.查看本地镜像

docker images

image

5.标记镜像

docker tag <原始镜像名>:<原始镜像tag> <新镜像名>:<新镜像tag>

该docker tag命令为镜像创建一个新标签。它不会创建新镜像。标签指向相同的镜像,并且是引用镜像的另一种方法。
image

6.删除镜像

docker rmi <镜像名>:<tag号>

image
ps 删除镜像异常处理
异常:删除镜像时,报镜像被容器引用异常
解决方案:
查看运行中的容器,找到引用要删除镜像的容器,删掉该容器

查看运行中容器指令
docker ps
删除容器指令
docker rm <容器id>

如果没有运行中的容器,查看所有容器,包括为运行的,找到对应的容器,删除

查看所有容器指令
docker ps -a

image

7.镜像导出与导入

导出指令
docker save <image> -o file.tar
导入命令
docker load -i file.tar
posted @ 2022-10-19 10:34  一枚码农  阅读(52)  评论(0编辑  收藏  举报