Docker安装部署python项目极简实战(macOS)

前言

docker问世多年,上手尝试,发现这的确是个好东西啊。应用简单明了、同一系统中部署多个docker环境分离互不干扰(python不同版本应用放到不同的docker),迁移方便。

本文从docker安装、python镜像、应用部署、镜像上传等方面,用最简洁的路径记录一个完整应用过程,算是做个笔记吧,毕竟命令容易忘。

docker入门视频教程,简单明了
https://www.bilibili.com/video/BV18J411n79W?from=search&seid=17411736726571505141

docker命令行大全,忘了就查查
https://www.runoob.com/docker/docker-command-manual.html

1、Docker安装

(1)docker下载地址
https://hub.docker.com/editions/community/docker-ce-desktop-mac/
直接下载、双击、拖动安装。实在不明白,下边有安装和配置教程。

(2)详细安装教程
https://www.runoob.com/docker/macos-docker-install.html

2、python3.7.4镜像

(1)双击docker启动应用(小鲸鱼图标)
(2)拉取python镜像(这里默认外网,速度慢,详细教程有加速方法)

docker pull python:3.7.4

(3)查看镜像,可以看到自己的镜像了

docker images

在这里插入图片描述

3、运行容器

容器就是应用所在的系统了,这就是能够运行一个python应用程序的完整环境。在这个容器中利用pip安装依赖包,放入开发好的python程序,然后将这个容器导出为image,就能够四处迁移了。
(1)运行容器
-it:-i和-t的结合,感觉就是如下图,直接进入容器的命令行模式。

–name:自定义容器名称,不用的话会自动分配一个名称。

-v: 将本地文件夹~/PycharmProjects/text_similar与容器文件夹/root/text_similar共享。

python:3.7.4:要运行的镜像名+TAG

bash:进入容器命令行。

docker run -it --name pytest -v ~/PycharmProjects/text_similar:/root/text_similar python:3.7.4 bash

执行上面命令后,就像进入了一个linux系统了,这里的所有操作都是在当前docker容器中。当然如果用rm -rf删除共享文件夹里边内容,那本地电脑里边的也就真删了。
在这里插入图片描述
(2)开始安装需要的python包
-i命令是指定pip拉取python包的位置,默认是外网,太慢了。

pin install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

(3)看一眼容器文件夹内容
在这里插入图片描述
(4)创建一个文件夹
这个文件夹放要运行的python文件。容器打包成镜像,这个文件夹一起打包进去,就能作为执行文件直接使用了。

mkdir my_test_python

(5) 创建测试python程序
本地text_similar文件夹创建hello.py,由于共享,可以直接在docker容器复制到my_test_python文件夹下
在这里插入图片描述
(6)执行以下看看
里边只有一行代码,打印hello word
在这里插入图片描述
(7) exit 命令推出docker容器

4、容器打包成镜像

(1) 看一下容器信息
看到下图第一条容器信息,就是刚才创建的,已经退出了。

docker ps -a

在这里插入图片描述
(2)把容器打包成镜像
用到容器ID,hello是镜像名称,v1是镜像TAG(版本号)

docker commit -a "eric" -m "my python test" 80cdd11f9b60  hello:v1

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

(3) 查看一下新的镜像
在这里插入图片描述
(4)可以容器直接运行刚才hello.py,运行完退出
docker run 命令后边直接跟着python+容器内容要执行的程序文件
在这里插入图片描述

5、docker上传image到docker hub

这块具体细节不太清晰了,大概这么个流程,给个链接吧
https://blog.csdn.net/sk_grace/article/details/81220675

(1)docker hub官网注册隔热你账号
(2)本地登录

docker login -u 用户名 -p 密码

(3)docker hub网站创建镜像信息
(4)本地tag关联
<existing-image>:本地镜像,例如hello:v1
<hub-usr>:你的hub名字
<repo-name>[:<tag>]:你指定的docker hub的那个库的名字和版本号

docker tag <existing-image>  <hub-user>/<repo-name>[:<tag>]

(5)push上去
都是docker hub上面已填写好的信息,外网,比较慢。

docker push <hub-user>/<repo-name>:<tag>

6、常用命令

(1)删除容器
先用docker ps -a,查看存在的容器,然后根据名字删除。
还在运行的用docker stop停止后,再删除

docker rm keen_poitras

(2)删除镜像
需要先删除运行该镜像的容器。
删除前先用docker images查看镜像ID,然后直接删除

docker rmi 6a87d348e445

(3)后台运行容器
-d:命令让容器后台运行,关闭命令窗口,容器不关闭。
docker run -d …

(4)还有好一堆命令:端口映射,这分配那分配,这只是用一下运行python脚本程序,感觉简单了。真的运维部署,有点像linux系统配置,哈哈哈。

(5)docker-compose up启动
下边可在执行完命令后,保持docker容器启动(待验证)
command:要执行的命令 && tail -f /dev/null

7、总结

docker还是不错的,记录一下笔记吧。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟化诞生的重要原因就是提升资源利用率,从而起到节约成本的主要目的,这也是高级运维工程师必须掌握的技能之一。本套视频完整的讲解了虚拟化在不同阶段出现的关键性技术。Vcent是 VMware 公司出品的企业级虚拟化产品,也是公认最优秀的虚拟化产品之一,在世界百强企业的利用率居高不下。Vcent 是一种基础架构虚拟化,或者我更愿意称它为“传统虚拟化”,基于裸金属结构模式开发而来,大大提升了稳定性以及运行效率。在视频中讲解了虚拟化的常见分类、安装 、网络配置、资源分割等常用技术,让你在生产化境配置中游刃有余!DockerDockerCloud公司出品,现已成为了容器级虚拟化的标准方案。Docker的优点非常众多,但是最让人印象深刻的莫过于“秒”级启动了,这是很多平台常用的一种描述方式。其实,这种说法不太友好,应该说为容器的启动时间等于容器内部进程的启动时间,这就可以让我们做到很多事情了。比如,不再去关注进程的失败原因从而找到解决方案,只需关心当前是否存在即可,失败 〉删除容器 〉重新启动容器,成了我们常见的操作。视频中对Docker技术的讲解非常细致,Docker常用命令、网络、存储、驱动、仓库一应俱全,是你走入容器世界的必备资料OpenStack,也就是常说的云计算平台,它在云计算市场的使用率达到了自然垄断的地位。比如:阿里云、百度云、红帽云平台等都是使用OpenStack作为底层平台为构建基础。如果你处于云计算行业,那么OpenStack是你的必备技能。视频中对OpenStack框架进行分离讲解,对不同的组件进行解析安装到最终的实例部署构建,带你走入云计算的大门!关于虚拟化的技术,这里应有尽有,快来学习吧!本视频中:01-02为虚拟化概述03-06为Vcent07-29为Docker30-53为云计算OpenStack

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值