docker-machine是docker创建的实用性工具。利用docker-machine能轻松创建一个虚拟机,并在虚拟机中安装配置好docker环境。
这里docker-machine安装教程略过,在docker toolbox中会带有docker-machine工具包,安装好docker toolbox后,在命令行直接使用“docker-machine”进行虚拟机管理。
在windows操作系统下docker-machine过程中,涉及到的一些目录共享和目录映射问题点作出一些说明。
在windows下使用docker-compose或者docker run过程中的目录映射会出现以下问题。
首先我们了解以下windows下docker-machine创建的虚拟机,作为宿主机如何访问虚拟机中的容器应用,以下是一个逻辑结构。
设置virtualbox共享文件夹功能
因此在写docker-compose.yaml文件时,应该写就
version: "3"
services:
php:
image: ldjbenben/swoole:4.2-php7.3-fpm
volumes:
- /lnmp/www:/usr/share/nginx/html/
- /lnmp/php/php.ini:/usr/local/php/etc/php.ini
- /lnmp/php/php-fpm.conf:/usr/local/php/etc/php-fpm.conf
networks:
- lnmp
container_name: php
nginx:
image: nginx
ports:
- "81:80"
- "82:82"
- "9537:9537"
- "9518:9518"
volumes:
- /lnmp/www:/usr/share/nginx/html/
- /lnmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /lnmp/nginx/logs:/var/log/nginx/
# command: bash -c "groupadd www && useradd -g www www"
networks:
- lnmp
container_name: nginx
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=zml123
networks:
- lnmp
container_name: mysql
redis:
image: redis
networks:
- lnmp
command: redis-server --requirepass zml123
container_name: redis
networks:
lnmp:
可以看到在volumes目录映射中,写的是虚拟机目录/lnmp和容器目录映射,而不是写成“/f/lnmp:/usr/share”等等结构。同理,在docker run命令中-v目录映射也要注意。
这个主要还是注意宿主机和虚拟机,容器所在位置关系。