我创建了这个基本的Dockerfile,期望test
在主机中像html / test一样可见,但事实并非如此。我认为是因为Docker在主机中创建了一个空的html目录并将其同步到guest。我尝试使用docker run和docker-compose,结果是相同的。
问题是,当我对Dockerhub中的WordPress映像执行相同的操作时,我看到它在主机上创建了一个目录,整洁地同步了来自guest虚拟机中/ var / www / html的所有文件。所以现在我想知道如何创建相同的行为。
Dockerfile简单测试:
FROM php:7.3.0-apache-stretch
RUN touch /var/www/html/test; \
echo success > /var/www/html/test
VOLUME /var/www/html
docker-compose.yml简单测试:
version: '3'
services:
php:
image: progonkpa/php-vol:1.0
volumes:
- ./html:/var/www/html
restart: always
问题是,当我对Dockerhub中的WordPress映像执行相同的操作时,我看到它在主机上创建了一个目录,整洁地同步了来自guest虚拟机中/ var / www / html的所有文件。
使用WordPress官方图片的docker-compose.yml(progonkpa / wordpress:1.0添加了XDebug和其他琐碎的文件)
version: '3'
services:
db:
image: mysql:5.7
volumes:
- ./docker-mysql/db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: progonkpa/wordpress:1.0
restart: always
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
restart: always
volumes:
- ./wordpress:/var/www/html
- ./src:/var/www/src
- ./vendor:/var/www/vendor
volumes:
db_data: