docker容器在重启动时,内部数据清空,log日志便无从查找,使用docker挂载功能挂载目录记录日志。

docker run参数--volume , -v: 绑定一个卷

挂载日志目录启动命令
docker run  -it -v /home/store1/log:/home/log acf003b32780 /bin/bash

 

docker-compose 配置方式

可以直接使用 HOST:CONTAINER 这样的格式,或者使用 HOST:CONTAINER:ro 这样的格式,后者对于容器来说,数据卷是只读的,这样可以有效保护宿主机的文件系统.

注:如果不设置work_dir,可以会造成log文件目录错误。

version: "3"
services:
  store1:
    build: .
    network_mode: host
    volumes:
      - ./log:/home/log
    image: "acf003b32780"
    working_dir: /home
    command:
      - sh
      - -c 
      - |
          java -jar /home/test-1.0.0.jar 
    
    


Compose 的数据卷指定路径可以是相对路径,使用 . 或者 .. 来指定相对目录。

数据卷的格式可以是下面多种形式:

volumes:
  # 只是指定一个路径,Docker 会自动在创建一个数据卷(这个路径是容器内部的)。
  - /var/lib/mysql

  # 使用绝对路径挂载数据卷
  - /opt/data:/var/lib/mysql

  # 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
  - ./cache:/tmp/cache

  # 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。
  - ~/configs:/etc/configs/:ro

  # 已经存在的命名的数据卷。
  - datavolume:/var/lib/mysql
如果你不使用宿主机的路径,可以指定一个 volume_drivervolume_driver: mydriver

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐