Docker 共享卷(Volume)是一种数据持久化的方式,它允许容器访问宿主机上的一个目录或文件,或者多个容器之间共享数据。在 Docker 构建过程中,共享卷可以用于多种场景,例如:
docker volume create
命令显式创建的卷,有名字,可以通过名字来访问。假设我们有一个简单的 Python 应用,需要将日志文件保存到宿主机上:
# 使用官方 Python 镜像作为基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制应用代码到工作目录
COPY . /app
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露端口
EXPOSE 5000
# 运行应用,并将日志目录挂载到宿主机的 /logs 目录
CMD ["python", "app.py"]
构建镜像并运行容器时,可以使用 -v
参数来挂载卷:
docker build -t my-python-app .
docker run -d -p 5000:5000 -v /logs:/app/logs my-python-app
在这个例子中,/logs
是宿主机上的目录,/app/logs
是容器内的目录。通过这种方式,容器内的日志文件会被保存到宿主机的 /logs
目录中。
-u
参数指定用户。-u
参数指定用户。通过以上内容,你应该对 Docker 构建时共享卷有了全面的了解,并能够解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云