Docker快速入门(Windows+Python)

"使应用环境的配置、发布、测试更为容易"

docker软件的基本概念

docker软件用来解决什么问题?

任务需求:我有一项web应用(本地调试无问题),想分享给别人,或部署到远程云服务器,需要模拟完全相同的本地开发环境

常规方法1:需要在别人电脑上配置相同的软件(如数据库、web服务器、必要的插件、库等等)

        存在问题:不一定能保证软件一定能正常运行

        原因分析:操作系统不同?(linux每种发行版有区别)、等等

常规方法2:用虚拟机模拟完全相同的开发环境

        存在问题:需要模拟硬件来运行整个操作系统→体积臃肿内存占用高,影响程序的性能

引入docker

在概念上与虚拟机非常相似,但轻量很多,无需模拟底层硬件,只会为每个应用提供完全隔离的运行环境,可以在单独的环境中配置不同的工具软件,不同环境之间互不影响,这个“环境”在docker中也被成为容器container

三个重要概念

镜像image

可以理解成虚拟机的快照snapshot,里面包含了要部署应用程序以及它所关联的所有库、软件。

相当于模板,可以通过这个模板来创建容器(最终项目运行是在容器中的),

容器Container

通过镜像,可以创建多个不同的容器Container,每个容器就像是一台台运行起来的虚拟机,里面运行了我的应用程序,每个容器都是独立运行的,相互不影响

基本命令有:启动、停止、删除等等

Dockerfile

相当于一个自动化脚本,用于创建前面所说的镜像(相当于虚拟机中安装操作系统和软件的过程)

仓库repository

存放镜像的地方,分为公有和私有→Docker Hub,阿里云(配置镜像加速)

docker软件的安装

windows和mac适用应用Docker Desktop

win 10以上可以用WSL2(windows下的linux子系统)来运行Docker

linux下可以按照包管理工具安装

vscode可以安装Docker扩展(好用)

docker软件的使用

以window11下打包Python为例

安装Docker Desktop

附链接:

Docker官网

安装后绑定Github账号+vscode安装Docker扩展

测试是否安装成功

win+r打开cmd,输入docker version查看docker版本,

出现如下客户端和服务器信息即可视为安装成功

输入docker run hello-world,验证docker desktop中hello-world镜像是否拉取成功

第一次尝试时会出现hello world镜像拉取过程

也可以在docker desktop的images中看到

使用Dockerfile在本地创建镜像

这里以简单的Test为例,下图是文件结构

首先使用pip install pipreqs安装pipreqs库,可以使用以下命令在cmd中来生成requirements.txt文件,其中包含了所需库的版本信息

pipreqs .

之后创建Dockerfile文件,添加如下信息

FROM命令是pull公共的基础库,以图方便

LABEL authors是作者信息

ADD于WORKDIR分别是添加文件到指定目录,以及指定目录为工作目录

RUN命令是创建镜像是需要执行的命令,这里是为了从requirements.txt安装所需库

CMD是执行上述的test.py文件

# 拉取基础镜像
FROM python:3.9-slim-buster

# 可加可不加
LABEL authors="xylitol"

# 将当前目录的所有文件添加到指定文件夹下(也可用COPY命令)
ADD . /code

# 将code文件夹设为工作目录
WORKDIR /code

# 镜像构建时需要执行的命令
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

# 运行
CMD ["python","test.py"]

之后使用docker build -t test .来利用dockerfile创建镜像,这里-t之后的test为创建好的镜像名称,第一次创建镜像会比较慢,之后会比较快

如果报错error: error during connect: this error may indicate that the docker daemon is not running: head "http://%2f%2f.%2fpipe%2fdocker_engine/_ping": open //./pipe/docker_engine: the system cannot find the file specified,可以尝试打开docker desktop软件再次尝试

这里也可以在docker desktop软件的images中看到我们创建的库

再之后,我们利用创建好的镜像来创建容器,可以使用

docker run -d --name=demo test

命令,从test镜像中创建名为demo的容器,-d代表避免输出,这里得到的一串序列号是所创建容器的序号

这里我们的容器就创建好了,可以使用

docker save -o demo.tar test

命令来打包镜像文件,这里为默认保存路径,讲test镜像中保存出名为demo的tar包,这就是装好环境的docker镜像

可以把这个镜像的tar包发给甲方,其他人使用

docker load -i demo.tar

命令来导入镜像,这里还看不到容器

运行这个镜像,输入镜像对应的ID,可以进入对应的容器,然后就可以再相应目录下运行代码了

docker run -it +ID

docker compose同时管理多个容器

待更新

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值