【发布时间】:2021-12-25 18:08:15
【问题描述】:
我第一次尝试使用 docker volume,我很难让容器与主机 (Ubuntu) 共享文件。我可以使用 docker exec 查看我的代码在容器内写入的文件,但没有文件位于 /var/lib/docker/volumes 下的卷中。
我的 Docker 文件
FROM node:16-alpine
RUN apk add dumb-init
RUN addgroup gp && adduser -S appuser -G gp
RUN mkdir -p /usr/src/app/logs
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . /usr/src/app/
RUN chown -R appuser:gp /usr/src/app/logs/
USER appuser
我的 docker-compole.yml
version: "3.6"
services:
my-service:
user: appuser
container_name: demou
build:
context: .
image: "myService"
working_dir: /usr/src/app
ports:
- 8080:8080 #
environment:
- NODE_VERSION=16
volumes:
- /logs:/logs/:rw
command: sh -c "dumb-init node src/server.js"
networks:
- Snet
# restart: always
volumes:
logs:
# driver: local
name: "logs"
networks:
Snet:
name: "Snetwork"
server.js 除了将 helloworld.txt 文件写入日志目录之外,什么都不做。当我在容器中运行应用程序时,我没有看到任何错误甚至警告。只是日志在 docker 保存其卷的主机上不可用。我在这里错过了什么?
谢谢
【问题讨论】:
标签: docker docker-compose docker-volume