赞
踩
之前我们安装好了软件,那么怎么用呢
目录
没必要什么都换国内源,搞不好最后还要重启电脑重置网络,很麻烦
上三张图



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

切换到linux的容器,我已经切换了,所以这里是windows,这个还是挺重要的哦。
我主要用python,所以拉一个python3.8的
下面的命令cmd输入就行了
docker run -itd python:3.8 bash
本地没有,他就会自己去拉,不用管,等结束了我们进去再装点东西
docker exec -it 容器id bash
这个可以进入容器内部,虽然docker desktop也可以进终端,但是用不习惯
- 更新apt,需要换源的话就换
- apt-get update
- apt-get upgrade
- 安装文件传输助手
- apt-get install lrzsz -y
- 你不会不装vim吧
- apt-get install vim -y
- 网络工具
- apt-get install net-tools
- 修改时区,这个要哦,不然时区不是百京时间
- cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- ctrl+d退出来
这里如果需要换源,那就得换了,不然下载太慢了
查看容器版本
cat /etc/os-release
我这边是
- PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
- NAME="Debian GNU/Linux"
- VERSION_ID="11"
- VERSION="11 (bullseye)"
- VERSION_CODENAME=bullseye
- ID=debian
- HOME_URL="https://www.debian.org/"
- SUPPORT_URL="https://www.debian.org/support"
- BUG_REPORT_URL="https://bugs.debian.org/"
"11 (bullseye)" 所以我的源要找这个
但我没换,网不错
然后重新保存一个镜像,或者先不保存,等会再报错
docker commit -m='说明,随便填' -a='作者名字' 容器id 新镜像名字:v1(版本号)
这个镜像就是我们的基础镜像了。后面有用。
我们先用镜像进入容器,这时候可以不用命令行了,因为咱们有docker desktop

LOGS------可以看到你程序的print的东西,方便你看程序运行情况
Teminal-----终端,这个不用我说了
Files------文件,可以在任意文件夹上右键,你会看到import,可以将外部的文件导入到容器内,而且在这个里面可以对文件进行编辑,非常好用。
我们可以把python的项目文件拉进来,但是先不拉,因为要先修改一下python的文件内容
其实说不上修改,就是有点不同
比如,我现在就想在我容器开启的时候,直接运行我的.py文件,那我得写个脚本,这样容器开启就调用,在python项目文件里写一个run.sh的脚本,就这样,要用绝对路径哦。而且,必须要在linux环境下写,在windows环境下的换行符号在docker里面无法识别,会报错。vim没有就vi吧,就是难用点。
- #! /bin/sh
- python /cty/test/main.py
好,接下来针对代码内部有点变化
我要用socket传输数据,所以我开一个端口,让局域网内的其他设备连到我。
就是
局域网设备A--------我的电脑(宿主机)-------我的容器
启动方式和内部的程序可能会有一点修改,但我们现在还是不启动新的容器,还没完。
注意事项就是下面的
- 通过暴露端口的方式,让socket可以使用
-
- 当容器作为客户端的时候
- 地址输入同一个局域网下的设备的ip就ok
- docker run -itd -p 35101:35101 镜像名字:版本 /bin/bash /cty/test/run.sh
-
- 当容器作为服务端的时候
- 地址自动获取容器ip
- host_ip = socket.gethostbyname(socket.gethostname())
- 在远程设备上只要输入宿主机ip就可以了,容器和宿主机之间通过端口直接通信了
把python 需要的requirement.txt inport 到容器内部,直接pip 安装,慢就清华源,这个就不用说了吧
这时候,三方包安装完,脚本写完,该有的都有了。打包一个新的镜像
docker commit -m='说明,随便填' -a='作者名字' 容器id 新镜像名字:v1(版本号
好了,镜像可以覆盖打包,名字版本一样都行的。
来,掉了就重启,--restart是容器的重启选项,需要的可以百度
- 5、启动的时候加上守护进程重启选项
- 这样除非是代码出错,如果是docker退出,他就可以重启。
- docker run -itd -p 35101:35101 --name=socket --restart=always 镜像名称:v1 /bin/bash /cty/test/run.sh
python进程的开启和监视需要自己重新写进程监视,docker desktop貌似做不到
也就是说,docker自己的重启相当于省掉了自己写开机自启这一块的脚本,但是还是需要写进程监视的脚本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。