当我使用docker run --rm -v C:\Python39:/mnt --entrypoint ls alpine -la /mnt
将Windows路径安装到本地Windows Shell 中的容器中时,就可以了。但是,当我将Windows //var/run/docker.sock
安装到容器中并尝试在该容器中运行以前的命令时,它将引发错误。
docker.errors.APIError: 500 Server Error: Internal Server Error ("invalid volume specification: 'C:\Python39:/mnt:ro'")
a.py
import docker
import os
print(os.environ["COMPOSE_CONVERT_WINDOWS_PATHS"])
c = docker.from_env()
output = c.containers.run("alpine", "-la /mnt",
entrypoint="ls", volumes={
'C:\\Python39': {
'bind': '/mnt',
'mode': 'ro',
}
})
print(output.decode())
Dockerfile
FROM python:3.9-alpine
RUN pip install docker
ENV COMPOSE_CONVERT_WINDOWS_PATHS=1
ADD a.py .
CMD ["python", "a.py"]
docker build . -t test
docker run docker run --rm -v //var/run/docker.sock:/var/run/docker.sock test