首页 > 其他分享 >Docker 导出容器到 docker-compose.yml 文件

Docker 导出容器到 docker-compose.yml 文件

时间:2024-02-02 09:47:49浏览次数:32  
标签:容器 compose run name yml docker BACKUP Docker

Docker 导出容器到 docker-compose.yml  文件

问题:docker-compose.yml 文件丢失

解决办法:docker的事用docker解决

背景:很多容器都是docker run运行的,想要转换为docker-compose.yml

1.测试备份:

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dockerproxy.com/red5d/docker-autocompose:latest 容器名称或ID

2.自动化脚本:

编写自动化脚本,每天循环备份,默认最近3天

 

#!/bin/bash

# https://github.com/Red5d/docker-autocompose

# 定义备份根目录
BACKUP_ROOT_DIR="/volume3/docker/backup"
EXPORT_DATE="$(date +%Y-%m-%d)"
TODAY_DIR="${BACKUP_ROOT_DIR}/${EXPORT_DATE}"

# 创建当天日期的文件夹
mkdir -p "${TODAY_DIR}"

# 计算3天前的日期
THREE_DAYS_AGO_DATE="$(date --date='2 days ago' +%Y-%m-%d)"

# 删除3天前及其之前的所有日期的文件夹
for dir in "${BACKUP_ROOT_DIR}/"*/; do
  dir_name="$(basename "${dir}")"
  if [[ "${dir_name}" < "${THREE_DAYS_AGO_DATE}" ]]; then
    echo "删除过时的备份文件夹: ${dir_name}"
    rm -rf "${dir}"
  fi
done

# 获取正在运行的容器列表
RunningContainers=($(docker ps --format "{{ .Names }}"))

# 遍历容器列表,为每个容器创建一个备份文件
for container_name in "${RunningContainers[@]}"; do
  BACKUP_FILE="${TODAY_DIR}/docker-autocompose_${EXPORT_DATE}_${container_name}.yaml"
  echo "正在导出容器配置到 ${BACKUP_FILE},容器名称: ${container_name}"

  # 创建 Docker Compose 文件并添加注释
  echo "# 由 Red5d/docker-autocompose 生成的 docker-compose 文件" > "${BACKUP_FILE}"
  echo "# 包含的容器: ${container_name}" >> "${BACKUP_FILE}"

  # 导出单个容器的配置到文件
  docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dockerproxy.com/red5d/docker-autocompose:latest "${container_name}" >> "${BACKUP_FILE}"
done

 

 

 

 

 

引用:https://blog.csdn.net/wangrui1573/article/details/133122655

标签:容器,compose,run,name,yml,docker,BACKUP,Docker
From: https://www.cnblogs.com/1285026182YUAN/p/18002568

相关文章

  • dotnet6 在docker运行
    安装环境: docker:docker-20.10.21.tgz Ubuntu:ubuntu-22.04.2-live-server-arm64.iso docker-compose:docker-compose-linux-x86_64 1、开启远程root远程登录 sudopasswdroot更改root密码 sudo-i切换用户 vim/etc/ssh/sshd_config 注释掉这行,允许root登录,但是禁止root......
  • centos7安装docker
    在CentOS7上安装Docker可以按照以下步骤进行操作:更新系统软件包列表:shellsudoyumupdate-y添加Docker的官方仓库源。创建并编辑 /etc/yum.repos.d/docker-ce.repo文件:shellsudovi/etc/yum.repos.d/docker-ce.repo将以下内容复制到该文件中保存:text[docker-ce]name......
  • 离线解锁 CodeCombat 全关卡教程 使用docker安装实现
    前期准备下载安装dockerdesktophttps://www.123pan.com/s/fmvUVv-HqApH,这个安装不会的随便搜一个教程,挺多的。我随便找了一个知乎的Windows10Docker安装详细教程下载数据dump.tar.gzhttps://www.123pan.com/s/fmvUVv-hqApH开始打开cmd拉镜像dockerpulloper......
  • docker登录harbor仓库上传镜像
    在docker中写入harbor仓库地址vi/etc/docker/daemon.json{"registry-mirrors":["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://kfwkf......
  • nerdctl build -- command to build container image from docker file
    1.Prerequisiteofusingnerdctlbuildbuildctlneedstobeinstalledandbuildkitdneedstoberunning.2.checkifbuildctlinstalled$nerdctlversionClient:Version: v1.7.2OS/Arch: linux/amd64Gitcommit: e32c4b023bf41e5c8325cfb893a53cefb5fc68edb......
  • k8s 怎么手动拉取docker镜像
    首先我们需要安装 docker 来打包镜像,如果你本地已经安装了 docker推荐安装方法目前使用 DockerDesktop 来安装docker还是最简单的方案,打开官网下载对应你电脑操作系统的包即可当安装完成后,可以通过 dockerrunhello-world 来快速校验是否安装成功!安装minikube我们还需......
  • docker的基础知识
    docker的基础知识docker命令docker-帮助命令显示docker版本信息dockerversion显示docker系统信息dockerinfo显示docker命令的帮助说明docker选项--helpdocker-镜像命令显示本地镜像dockerimages[选项]选项:-a显示所有镜像-q仅显示镜像id显示的列:REPOS......
  • Cadvisor 基于 Docker 部署
    1、Docker、Docker-Compose安装https://www.cnblogs.com/a120608yby/p/9883175.htmlhttps://www.cnblogs.com/a120608yby/p/14582853.html2、基于Docker-Compose部署Cadvisor#vimdocker-cadvisor/docker-compose.ymlversion:'3.2'services:cadvisor:im......
  • Linux系统下使用dockercompose部署的stringboot应用程序不断重启,无法正常访问。
    Linux系统下使用dockercompose部署的stringboot应用程序不断重启,无法正常访问。问题描述使用dockercompose部署的stringboot应用程序,每次都是启动成功,通过apifox访问接口就失败,端口也无法ping通。没有任何报错信息,启动日志也不全,只有2行。最开始定位的是stringboot的版本号问题......
  • docker安装jenkins并且通过jenkins部署项目(超详细and靠谱)
    docker安装jenkins并且通过jenkins部署项目(超详细and靠谱):https://gitcode.csdn.net/65aa2732b8e5f01e1e44ae36.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NjQ0NjEzLCJleHAiOjE3MDczNTk1MzgsImlhdCI6MTcwNjc1NDczOCwidXNlcm5hbWUiOiJxcTI0MzE3OTUyMSJ9.Hx1XoH......