当前位置:   article > 正文

docker desktop windows运行python全流程_docker desktop python

docker desktop python

之前我们安装好了软件,那么怎么用呢

目录

1、别乱改东西

2、切换好版本

3、拉镜像

4、python文件在docker容器的使用

5、python文件的修改 

6、安装需要的包

7、打包

8、运行容器

注意事项


1、别乱改东西

没必要什么都换国内源,搞不好最后还要重启电脑重置网络,很麻烦

上三张图

 

 网段也是默认,没关系。同一个局域网内的设备要访问可以暴露端口给他,后面会说

2、切换好版本

 切换到linux的容器,我已经切换了,所以这里是windows,这个还是挺重要的哦。

3、拉镜像

我主要用python,所以拉一个python3.8的

下面的命令cmd输入就行了

docker run -itd python:3.8 bash

本地没有,他就会自己去拉,不用管,等结束了我们进去再装点东西

docker exec -it 容器id bash

这个可以进入容器内部,虽然docker desktop也可以进终端,但是用不习惯

  1. 更新apt,需要换源的话就换
  2. apt-get update
  3. apt-get upgrade
  4. 安装文件传输助手
  5. apt-get install lrzsz -y
  6. 你不会不装vim吧
  7. apt-get install vim -y
  8. 网络工具
  9. apt-get install net-tools
  10. 修改时区,这个要哦,不然时区不是百京时间
  11. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  12. ctrl+d退出来

这里如果需要换源,那就得换了,不然下载太慢了

查看容器版本

cat /etc/os-release

我这边是

  1. PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
  2. NAME="Debian GNU/Linux"
  3. VERSION_ID="11"
  4. VERSION="11 (bullseye)"
  5. VERSION_CODENAME=bullseye
  6. ID=debian
  7. HOME_URL="https://www.debian.org/"
  8. SUPPORT_URL="https://www.debian.org/support"
  9. BUG_REPORT_URL="https://bugs.debian.org/"

"11 (bullseye)" 所以我的源要找这个

但我没换,网不错

然后重新保存一个镜像,或者先不保存,等会再报错

docker commit -m='说明,随便填' -a='作者名字' 容器id 新镜像名字:v1(版本号)

这个镜像就是我们的基础镜像了。后面有用。

4、python文件在docker容器的使用

我们先用镜像进入容器,这时候可以不用命令行了,因为咱们有docker desktop

LOGS------可以看到你程序的print的东西,方便你看程序运行情况

Teminal-----终端,这个不用我说了

Files------文件,可以在任意文件夹上右键,你会看到import,可以将外部的文件导入到容器内,而且在这个里面可以对文件进行编辑,非常好用。

我们可以把python的项目文件拉进来,但是先不拉,因为要先修改一下python的文件内容

5、python文件的修改 

其实说不上修改,就是有点不同

比如,我现在就想在我容器开启的时候,直接运行我的.py文件,那我得写个脚本,这样容器开启就调用,在python项目文件里写一个run.sh的脚本,就这样,要用绝对路径哦。而且,必须要在linux环境下写,在windows环境下的换行符号在docker里面无法识别,会报错。vim没有就vi吧,就是难用点。

  1. #! /bin/sh
  2. python /cty/test/main.py

 好,接下来针对代码内部有点变化

我要用socket传输数据,所以我开一个端口,让局域网内的其他设备连到我。

就是

局域网设备A--------我的电脑(宿主机)-------我的容器

启动方式和内部的程序可能会有一点修改,但我们现在还是不启动新的容器,还没完。

注意事项就是下面的

  1. 通过暴露端口的方式,让socket可以使用
  2. 当容器作为客户端的时候
  3. 地址输入同一个局域网下的设备的ip就ok
  4. docker run -itd -p 35101:35101 镜像名字:版本 /bin/bash /cty/test/run.sh
  5. 当容器作为服务端的时候
  6. 地址自动获取容器ip
  7. host_ip = socket.gethostbyname(socket.gethostname())
  8. 在远程设备上只要输入宿主机ip就可以了,容器和宿主机之间通过端口直接通信了

6、安装需要的包

把python 需要的requirement.txt inport 到容器内部,直接pip 安装,慢就清华源,这个就不用说了吧

7、打包

这时候,三方包安装完,脚本写完,该有的都有了。打包一个新的镜像

docker commit -m='说明,随便填' -a='作者名字' 容器id 新镜像名字:v1(版本号

好了,镜像可以覆盖打包,名字版本一样都行的。

8、运行容器

来,掉了就重启,--restart是容器的重启选项,需要的可以百度

  1. 5、启动的时候加上守护进程重启选项
  2. 这样除非是代码出错,如果是docker退出,他就可以重启。
  3. docker run -itd -p 35101:35101 --name=socket --restart=always 镜像名称:v1 /bin/bash /cty/test/run.sh

注意事项

python进程的开启和监视需要自己重新写进程监视,docker desktop貌似做不到
也就是说,docker自己的重启相当于省掉了自己写开机自启这一块的脚本,但是还是需要写进程监视的脚本。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50302
推荐阅读
相关标签
  

闽ICP备14008679号