windows下的docker基础应用;docker打包python模型镜像保姆级教程

本文详细介绍了Docker的基础知识,包括从远程仓库下载镜像、查看镜像和容器的占用空间以及删除镜像。还阐述了如何创建和管理镜像,如编写Dockerfile,生成requirements.txt文件,打包并推送镜像到仓库。此外,文章还涵盖了启动和管理容器,以及镜像的打包和传输方法。
摘要由CSDN通过智能技术生成

目录

一、基础知识。

1. 从远程仓库下载镜像到本地

2. 查看镜像/容器/数据卷所占用空间

3.删除镜像

二、打开docker软件, 查看当前docker的状态和已有的镜像和容器。

1. 查看当前docker的镜像(images);

2. 查看正在运行的容器

3. 查看所有容器,包括没运行的。

此外,

三、创建镜像(带功能的创建镜像)。

1. 生成requirements.txt文件

2. 使用docker的命令编写Dockerfile

3.打包镜像

A.构建并推送镜像到Docker仓库

B.指定路径通过dockerfile创建镜像

C.--target:指定多阶段构建中的目标构建阶段。

4.本地启动容器

5. 镜像打包和传输


一、基础知识。

镜像:代码和代码运行环境打包的成品。

容器:启动镜像的进程。一个镜像多次启动可获得多个容器。


1. 从远程仓库下载镜像到本地

拉取Ubuntu系统


docker pull Ubuntu

2. 查看镜像/容器/数据卷所占用空间


docker system df

3.删除镜像

docker rmi 镜像的ID


docker rmi (IMAGEID)


 

二、打开docker软件, 查看当前docker的状态和已有的镜像和容器。

1. 查看当前docker的镜像(images);


docker images

2. 查看正在运行的容器


docker ps

3. 查看所有容器,包括没运行的。


docker ps -a

此外,

  • -a:列出当前所有正在运行的容器 + 历史上运行过得容器
  • -l:显示最近创建的容器
  • -n:显示最近n个创建的容器
  • -q:静默模式,只显示容器编号

三、创建镜像(带功能的创建镜像)。

1. 生成requirements.txt文件

A. 将需要打包的代码放在某文件夹下。

B.进入Anaconda,安装pipreqs库

 pip install pipreqs

结果如下:

C.CD进代码目录,执行命令 pipreqs ./ --encoding=utf8

 cd 路径
pipreqs ./ --encoding=utf8

结果如下:

在目录文件夹下生成了requirements.txt文件

2. 使用docker的命令编写Dockerfile

docker init

结果如下:

按照提示选中语言,此处选中python,结果如下:

按照提示输入python版本号3.7.6,此处版本号可自选,结果如下

按照提示输入需要封装的镜像的端口号8000,可自行选择,结果如下

选定端口号后,设定启动镜像的命令。

     因为我们的代码为 MD.py,用python启动,命令如下。

python MD.PY

结果如下:

此时,代码文件夹下自动生成的dockerfile和相应的配置文件

3.打包镜像

打包命令如下:

Docker build -f “DockerFile文件” -t “镜像名” .

最后一定要加“.”

最后一定要加“.”

最后一定要加“.”
参数说明:
-f 指定dockerfile文件名
-t 镜像的名字及tag指定,例如:MD:1.0

其他打包方法

A.构建并推送镜像到Docker仓库

docker build -t imageName:tag .
docker push imageName:tag

B.指定路径通过dockerfile创建镜像

docker build -t my-image:tag /path/to/dockerfile/dir

C.--target:指定多阶段构建中的目标构建阶段。

这个方法我没用过,功能概括为:

首先在一个镜像中构建应用程序,然后将构建好的结果复制到另一个镜像中并运行应用程序。

打包完成后,结果如下:

也可以用doker images查看

删除镜像(Images),删除前需要停止镜像,如果有容器在运行会报错。

停止:

docker stop ID

删除:

docker rmi -f ID
docker rmi -f ID1 ID2
docker rmi -f $(docker images -pa)

4.本地启动容器

启动容器,使用docker run命令

docker run -itd --name 【容器名】 【image名】【路径】


docker run -itd --name ubuntu-test ubuntu /bin/bash    ##命令启动一个容器实例

带条件的启动容器,

docker run --rm -itd --name testmd -p 8000:8000 md
  • --rm: 这个选项表示在容器停止后自动删除容器。
  • -itd: 这三个选项组合在一起,表示以交互式模式(-i)运行容器,并在后台(-t)启动容器,同时分配一个伪终端(-d
  • --name testmd: 这个选项指定了容器的名称为"testmd"。
  • -p 8000:8000: 这个选项将容器内部的端口8000映射到宿主机的端口8000上。这意味着通过访问宿主机的IP地址和端口8000,可以访问容器内部的应用程序。
  • md: 这是要运行的镜像名称。在这个例子中,启动名为"md"的Docker镜像。

添加物理地址-->虚拟地址的映射

docker run --rm -itv 物理地址:虚拟地址 --name  容器名  镜像名

docker run --rm  -itv E:\Physicaladdress:/app --name c1 ftest 
  • --rm 是一个选项,表示在容器退出后自动删除容器。这对于临时使用的容器很有用,可以避免手动清理。

  • -it 是一个选项,表示将容器的输入(i)和输出(t)连接到当前终端。这样你就可以在容器内进行交互操作。

  • v E:\Physicaladdress:/app 是一个卷挂载选项,表示将主机上的 E:\Physicaladdress 目录挂载到容器内的 /app 目录。这样在容器内对 /app 目录的操作会反映到主机上的 E:\Physicaladdress 目录,反之亦然。

  • --name c1 是一个选项,表示为新创建的容器指定一个名称,这里命名为 "c1"。

  • ftest 是要运行的 Docker 镜像的名称

5. 镜像打包和传输

镜像打包成文件

 docker save -o 文件名.tar 镜像名

传输到另一台B

scp 压缩文件名.tar root@172.0.60.170:/目录

在B上解压

docker load -i 压缩文件名.tar

6.向容器传入输入参数的方法

1.修改py代码

from sys import argv
import os
if "__main__"==__name__:
    print(argv[1])
    print(type(argv[1]))

2.修改docker file

CMD python app.py $PARAMS  

3.修改启动命令(注意:不能用&,识别不了)

docker run --rm -itd --name cyt -e PARAMS='A=1@B=2' my_image  (注意:不能用&,识别不了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值