flask后台部署套路(四)

共享配置
我们希望是在windows里面做开发 在linux里面运行。比如我们在虚拟机里面装个samba,配置一些共享服务 这个时候就可以直接再windows里面做开发,文件就直接映射到了linux里面去了

选用得镜像是
https://hub.docker.com/r/dperson/samba/
ps: 这个地方写文档的时候出了点问题,注意一下把你的linux用户切换一下,别使用root账户

  1. 拉取镜像
docker pull dperson/samba:latest
  1. 有几个端口在做容器之前先开放一下
    一个tcp端口的139 和445
    一个udp端口的137 和138
sudo iptables -I INPUT -p tcp --dport 139 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 445 -j ACCEPT

sudo iptables -I INPUT -p udp --dport 137 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 138 -j ACCEPT
  1. 测试运行
docker run -it -p 139:139 -p 445:445  --name smb -d --rm  \
-v /root/myapp:/mount \
dperson/samba \
-u "root;123" \
-s "xiong;/mount/;yes;no;yes;all;all;all" \
-w "WORKGROUP" 

第一行 映射linux宿主机和容器的两个端口 且命名为smb -d 后台运行 --rm测试一下 退出这个容器就会删除
第二行 -v 映射宿主机器需要共享的文件夹到容器内的随便一个目录(/mount)下
第三行 镜像名字
第四行 -u 会在容器内部创建一个系统用户root,密码随便(123) 注意这个用户需要和文件所有者名字一致
第五行 第一个数 共享文件夹的名称 你改abc都行,第二个参数 第二行映射的容器内目录
第三个 是否可浏览 第四个 只读 第五个 是否运行游客访问 因为更像用无密码的模式来共享文件,采用游客访问
第六个 允许的用户,选择全部 第七个 第八个我不知道有啥用,可以看上文提供链接里面的文档
第六行 看下你计算机属性里面的工作组 如果你改过了 给我改回来
4. 运行指令之后,在window的运行框里面输入

\\虚拟机ip
我这里是
\\192.168.40.137

可以看到有个名字为xiong的文件夹打开就是Linux里面的文件了
但是发现你新建不了东西,没有访问的权限。
那么为什么会出现这种情况呢:

  • 回到我们的linux虚拟机,进入到samba容器里面
docker exec -it smb sh

找到挂载进来的文件/mount进入后使用'ls -l'发现挂载进来的文件都是指令里面写的root这个名字 这时候我们在windows上不管是创建还是改文件都是使用的默认的smbuser
进入到配置文件夹下

cd /etc/samba/

里面有一个smb.conf文件具体里面怎么改可以自己百度去弄,这里不做解释,后面我们改变容器的生成形式就可以解决这个问题了。
5. 退出、停止这个容器

ctrl+D
docker stop smb
  1. 重新完整的运行
docker run -it -p 139:139 -p 445:445  --name smb -d --rm  \
-v /root/myapp:/mount \
dperson/samba \
-u "root;123" \
-s "xiong;/mount/;yes;no;yes;all;all;all" \
-w "WORKGROUP" \
-g "force user= root" \
-g "guest account= root" 
posted @ 2020-05-08 18:21  南风有时起  阅读(252)  评论(0编辑  收藏  举报