VirtualBox和Vmware中宿主机挂载文件夹到虚拟机有什么不同?

发布于 2022-09-05 06:33:00 字数 4198 浏览 27 评论 0

我之前一直是Docker ToolBox套装做的docker学习环境,后面直接使用compose构建了许多开发环境和单机生产环境,但是出现过很多莫名其妙的问题。

VirtualBox 使用Boot2Docker共享文件夹开发,js修改后尾部出现一串乱码(和nginx容器都没关系)

Docker-compose.yml

version:  '3.0'
services:
##基础环境
  nginx:
    image: nginx:1.13.3
    volumes:
      - /etc/localtime:/etc/localtime:ro
#网站目录
      - ./app:/var/www/html
      - ./dockerfiles/nginx/conf.d:/etc/nginx/conf.d:ro
#日志文件
      - ./logs/nginx:/var/log/nginx
    links:
      - "php-fpm:php-fpm"
    ports:
      - "80:80"
    command: nginx -g 'daemon off;'

  mysql-db:
    image: mysql:5.5
#很重要导入到处数据
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./data/mysql:/var/lib/mysql:rw
      - ./logs/mysql:/var/lib/mysql-logs:rw
      - ./dockerfiles/mysql/conf.d:/etc/mysql/conf.d:ro
    environment:
        MYSQL_ROOT_PASSWORD: zhaojun
        MYSQL_DATABASE: lottery_api_sale
        MYSQL_USER: zhaojun
        MYSQL_PASSWORD: zhaojun
    ports:
      - "3306:3306"
    deploy:
      restart_policy:
        condition: any
  redis-db:
    image: redis
    volumes:
      - ./data/redis:/data
      - /etc/localtime:/etc/localtime:ro
    deploy:
      restart_policy:
        condition: any
  php-fpm:
    build: ./dockerfiles/php/
    restart: always
    environment:
      TP_APP_DEBUG: 'true'
    volumes:
#网站目录
      - ./app:/var/www/html:rw
#配置文件
      - ./dockerfiles/php/php.ini:/usr/local/etc/php/php.ini:ro
      - ./dockerfiles/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro
#挂载站点日志
      - ./logs/php-fpm:/var/log/php-fpm:rw
    depends_on:
      - mysql-db
      - redis-db
    links:
      - mysql-db:mysql-db
      - redis-db:redis-db
    command: php-fpm

##附加扩展安装器
  composer:
    image: composer:1.4.2
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./app:/app:rw
    working_dir: /app/webroot
    deploy:
      restart_policy:
        condition: none
    command: composer install
  bower:
    image: digitallyseamless/nodejs-bower-grunt
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./app:/app:rw
    working_dir: /app/webroot
    deploy:
      restart_policy:
        condition: none
    command: bower install

VirtualBox中修改Js后访问

clipboard.png

clipboard.png

在webroot/public有一个测试文件

clipboard.png

第一次访问,没问题

clipboard.png

在修改了index.js后访问出现乱码

clipboard.png

clipboard.png

clipboard.png

1.开始以为是nginx原因,换了很多版本测试排除了nginx原因。

2.后面以为是boot2docker原因,又排查了版本,最后切换vBox的一个ubuntu做共享文件夹测试,都是同样一模一样的问题。

3.ubuntu在Vbox中一模样的效果
clipboard.png

最后我开始排查虚拟器,在换了vmware后,此问题就消失了,同样使用的是两个这虚拟机的挂载。

clipboard.png

所以排查出来的情况就是Virtualbox和Vmware挂载共享文件的不同造成的,就来请假一下他们有什么不同???
(在我修改了我windows下共享目录的文件后,不管是Virtualbox和vmware里面还是两个虚拟器的操作系统里面docker容器里面得文件都是修改了的vim也能看到)

在virtualbox中的ubuntu中直接vim或者phpstorm修改文件,不会出现这个问题,所以最终就是确定了virtual虚拟机共享文件问题。

2017.07.26 我使用同事PC机器遇到同样的问题。

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文