将 docker-compose.yml 转换为 docker 运行
Transform docker-compose.yml to docker run
我是 docker 的新手,我不知道如何转换这个 docker-compose.yml :
version: '3'
services:
php:
build: .
volumes:
- "./:/var/www/html:ro"
- "./:/var/log/php"
在一行中输入一个简单的 docker 命令(如果可能的话)。我试过这个:
docker build -t mstp2html --mount source=./,target=/var/www/html,ro --mount source=./,target=/var/log/php -f- .
还有这个 :
docker run --name mstp2html --mount source=./,target=/var/www/html,ro --mount source=./,target=/var/log/php ./Dockerfile
但是不行。我错过了什么?
您混淆了两个概念:
- build:创建docker镜像的阶段,但与运行
没有关系
- 运行:您 运行 一个基于现有 docker 图像的 docker 容器的阶段。在此阶段,您可以定义卷等选项。
为了让您的示例正常工作,您需要将其分为两个阶段:
- 构建 docker 图像:
docker build -t mstp2html_image .
- 运行 镜像中的容器并挂载你想要的卷:
docker run --name mstp2html --mount type=bind,source="$(pwd)",target=/var/www/html,ro --mount type=bind,source="$(pwd)",target=/var/log/php mstp2html_image
我是 docker 的新手,我不知道如何转换这个 docker-compose.yml :
version: '3'
services:
php:
build: .
volumes:
- "./:/var/www/html:ro"
- "./:/var/log/php"
在一行中输入一个简单的 docker 命令(如果可能的话)。我试过这个:
docker build -t mstp2html --mount source=./,target=/var/www/html,ro --mount source=./,target=/var/log/php -f- .
还有这个 :
docker run --name mstp2html --mount source=./,target=/var/www/html,ro --mount source=./,target=/var/log/php ./Dockerfile
但是不行。我错过了什么?
您混淆了两个概念:
- build:创建docker镜像的阶段,但与运行 没有关系
- 运行:您 运行 一个基于现有 docker 图像的 docker 容器的阶段。在此阶段,您可以定义卷等选项。
为了让您的示例正常工作,您需要将其分为两个阶段:
- 构建 docker 图像:
docker build -t mstp2html_image .
- 运行 镜像中的容器并挂载你想要的卷:
docker run --name mstp2html --mount type=bind,source="$(pwd)",target=/var/www/html,ro --mount type=bind,source="$(pwd)",target=/var/log/php mstp2html_image