备份命令示例:
docker run --rm -v my_volume:/data -v $(pwd):/backup alpine tar czf /backup/backup.tar.gz -C /data .
# 恢复命令示例
docker run --rm -v my_volume:/data -v $(pwd):/backup alpine tar xzf /backup/backup.tar.gz -C /data
修改数据卷
方法一:使用临时容器进入命令行(最推荐)
# -i: 交互式
# -t: 分配终端
# --rm: 退出后自动删除容器
# -v: 把卷挂载到容器的 /work 目录
docker run -it --rm -v my_app_config:/data alpine sh
方法二:从宿主机“覆盖”文件(适合本地改好再上传)
# 语法:docker run --rm -v <卷名>:<目标路径> -v <宿主机路径>:<源路径> <镜像> cp <源文件> <目标文件>
# 示例:把宿主机的新配置覆盖到卷里
docker run --rm \
-v my_app_config:/target \
-v $(pwd):/source \
alpine cp /source/new_config.json /target/config.json
命名卷使用方法
#version: "3"
services:
proxy:
image: nginxproxy/nginx-proxy
container_name: nginx-proxy
restart: always
ports:
- 80:80
- 443:443
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- ./nginx-proxy/certs:/etc/nginx/certs:ro
- ./nginx-proxy/config/nginx/conf.d:/etc/nginx/conf.d
- ./nginx-proxy/acme:/acmecerts
- ./nginx-proxy/vhost.d:/etc/nginx/vhost.d
- ./nginx-proxy/html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- default
letsencrypt-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
container_name: letsencrypt
volumes:
- ./nginx-proxy/certs:/etc/nginx/certs
- ./nginx-proxy/vhost.d:/etc/nginx/vhost.d
- ./nginx-proxy/html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- proxy
restart: always
networks:
- default
dwz:
image: registry-vpc.cn-hangzhou.aliyuncs.com/shiningrise/dwz:2.1.0
container_name: dwz
privileged: true
restart: always
tty: true
environment:
- TZ=Asia/Shanghai
- VIRTUAL_HOST=dwz.wxy.kim
- VIRTUAL_PORT=5000
- LETSENCRYPT_HOST=dwz.wxy.kim
- LETSENCRYPT_EMAIL=shiningrise@qq.com
volumes:
#- ./dwz/instance:/app/instance
- dwz_data_volume:/app/instance
volumes:
dwz_data_volume:
name: dwz_data