Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
# 将官方 Python 运行时用作父镜像 FROM python:3.9-slim # 将工作目录设置为 当前目录 WORKDIR . # 将当前目录内容复制到容器中 ADD . . RUN apt-get update RUN apt install -y g++ RUN apt install -y cmake RUN apt install -y make RUN apt install -y wget unzip RUN apt-get -y install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev # 安装 requirements.txt 中指定的任何所需软件包 RUN pip install -r requirements.txt # 定义环境变量 #ENV NAME World # 在容器启动时运行 main.py CMD ["python", "main.py"] #CMD ["python","./apps/min.py","worker","-l","info"] ##faust程序worker启动命令 #指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务 EXPOSE 5005
docker build -f Dockerfile -t qrdetect:1.1 .
docker run --name qr -p 8081:5005 -d qrdetect:1.1
由于经验问题,我们可能会要经常使用一些镜像和容器命令
docker ps -a
+ docker logs id
docker image ls
docker rmi id
docker rm id
docker stop id
docker save -o qrdetect.tar 483128b19e21
docker load --input qrdetect2.tar
docker import qrdetect.tar qr:1.1
docker export bf2358939836 > qrdetect.tar
最好不用wsl进行打包,问题比较多,还是直接linux环境打包比较好
https://dennislwm.netlify.app/posts/installing-minikube-on-ubuntu-with-wsl-backend/
https://zhuanlan.zhihu.com/p/272541376
https://answers.microsoft.com/zh-hans/windows/forum/all/win11如何关闭hyper-v/25b2974d-80e5-44e6-9e78-6fbd8e3e519f
https://docs.docker.com/engine/install/ubuntu/
https://zhuanlan.zhihu.com/p/53707590
https://blog.csdn.net/foreverhot1019/article/details/102725793
https://blog.csdn.net/weixin_44796670/article/details/115900538