声明
- 此文只针对 win7、win10 家庭版等用户操作系统,因为这些系统无法使用 windows 的 Hyper-V 虚拟技术。只能借助于 Virtual Box 虚拟机来使用 docker。
Docker 相关配置
- 在确认你只能使用 Virtual Box 的方式安装 docker 后,你需要下载 Docker Toolbox,安装方式参考官方文档。或者你可以直接下载最新的发行版 Docker Toolbox。
- 安装 Docker Toolbox,会帮助你安装 3 个软件 —— Docker Quikstart、Oracle VM VirtualBox、Kitematic。也就是说你不必特意地去安装其中的某一个。
- 安装完后,打开 Docker Quikstart 即可,它会帮助你启动 Virtual Box 等相关软件。有时候,可能会遇到错误,可以试试 卸载 VirtualBox、Kitematic 重新安装一遍 Docker Toolbox。
docker 客户端
- Docker Quikstart 打开之后是一个命令行工具,也是 docker 的客户端,可以通过一些命令操作 docker 服务。
![image.png](https://i-blog.csdnimg.cn/blog_migrate/201ea1520701acb8c7eecad4d0dd22dc.webp?x-image-process=image/format,png)
配置共享目录
- 虽然在 Docker Quikstart 中可以通过
/d/path
的路径访问目录,但是当你启动容器时,目录映射可能出现异常,进入容器后发现映射的目录中的文件都未正常映射。 - VirtualBox 默认是有一个共享目录的 ——
/c/Users/
。 ![image.png](https://i-blog.csdnimg.cn/blog_migrate/a468dc2acac60d22bd7426439b88c2ab.webp?x-image-process=image/format,png)
- 如果你启动容器时要映射的目录和文件都位于这个目录下,你基本不用做任何调整。如果你把你的代码文件(也就是启动 docker 容器时要映射的目录/文件)放在了其他的盘,比如 d 盘,而它却不在 VirtualBox 配置的共享目录中,此时你需要手动配置一下共享目录。
![image.png](https://i-blog.csdnimg.cn/blog_migrate/9360ad4bd76422fad072cef1ee9b67f5.webp?x-image-process=image/format,png)
- 可以新增共享目录,但是填写配置目录名需要注意:
![image.png](https://i-blog.csdnimg.cn/blog_migrate/d04d3a53aa0ac68b734b7abb3efe1e93.webp?x-image-process=image/format,png)
- 新增好共享目录后,需要重启,到 Docker Quikstart 中运行命令
docker-machine restart default
即可完成重启。稍后便能再次使用 docker 相关命令。 - 前面配置的代码目录是
/d/docker/work_code
,因此当我们启动容器时的目录映射可以这样写:docker run -it -v /d/docker/work_code/project1:/opt/wwwroot/project1 docker_php /bin/bash
- 也就是说,我们是通过绝对路径
/d/docker/work_code/project1
的方式来进行宿主机目录的映射的。 - 此时进入容器查看,目录的映射是正常的,代码文件也都是存在的。
- 后续的 docker 使用就像普通使用 docker 一样即可。
访问
- 当 docker 配置完成之后,启动容器,我们可通过浏览器或 postman 作为客户端来访问验证。使用 VirtualBox 方式的 docker 的容器不是通过
127.0.0.1
来访问的,而是要通过访问虚拟机的 ip 来访问。因此,在 Docker Quikstart 中通过 docker-machine ip
来查看你机器上的虚拟机的 ip。然后通过 ip + 端口号 的方式来访问启动的服务。
$ docker-machine.exe ip
192.168.99.100
结语
- 通过上面的设置,出现问题最主要的原因是共享目录没有设置对。因此只要按照上述“设定共享目录”进行配置,即可正常使用。