首页 > 其他分享 >使用 Docker 卷来实现替换容器内文件为宿主机上的

使用 Docker 卷来实现替换容器内文件为宿主机上的

时间:2024-06-13 22:33:24浏览次数:11  
标签:容器 卷来 宿主机 nginx html usr path Docker

要将容器内的 /usr/share/nginx/html 目录替换成宿主机上的 /path/html 目录里的内容,你可以使用 Docker 卷来实现。以下是你需要做的修改:

  1. 停止并删除现有的前端容器(如果它正在运行):

    docker-compose down --remove-orphans
    
  2. 修改 docker-compose.yml 文件,在 frontend 服务中添加一个卷映射,将宿主机的 /path/html 目录挂载到容器的 /usr/share/nginx/html 目录:

    frontend:
      container_name: bisheng-frontend
      image: dataelement/bisheng-frontend:latest
      ports:
        - "3001:3001"
      environment:
        TZ: Asia/Shanghai
      volumes:
        - /path/html:/usr/share/nginx/html  # 将宿主机的/path/html挂载到容器的/usr/share/nginx/html
        - ${DOCKER_VOLUME_DIRECTORY:-.}/nginx/nginx.conf:/etc/nginx/nginx.conf
        - ${DOCKER_VOLUME_DIRECTORY:-.}/nginx/conf.d:/etc/nginx/conf.d
      restart: on-failure
      depends_on:
        - backend
    

    请确保将 /path/html 替换为你实际的宿主机目录路径。

  3. 重新启动服务

    docker-compose up -d
    

这样,当你使用 docker-compose up -d 命令重新启动前端服务时,它将使用宿主机上 /path/html 目录中的内容,而不是容器镜像中的原始内容。

请注意,这种挂载方式将覆盖容器内原有的 /usr/share/nginx/html 目录,任何对该目录的更改都将反映在宿主机的 /path/html 目录中,并且这些更改将在容器重启后保留。

如果你需要保留容器内原有内容的备份,可以在执行上述操作之前,先将容器内的内容复制出来:

docker cp bisheng-frontend:/usr/share/nginx/html /path/to/backup

这会将容器内的 /usr/share/nginx/html 目录复制到宿主机的 /path/to/backup 目录。

标签:容器,卷来,宿主机,nginx,html,usr,path,Docker
From: https://blog.csdn.net/qq_44154915/article/details/139628041

相关文章

  • Docker镜像与容器的导入与导出
    参考chat-gpthttps://blog.csdn.net/qq_22211217/article/details/93936363https://blog.csdn.net/ncdx111/article/details/79878098https://www.runoob.com/docker/docker-import-command.htmlhttps://www.runoob.com/docker/docker-export-command.html环境环境版......
  • dockerfile CMD 和 ENTRYPOINT 分别什么时候用
     在Docker中,CMD和ENTRYPOINT指令都是用来定义容器启动时运行的默认命令,但它们的用途和行为有所不同,适用于不同的场景:CMD用途:CMD指令用来指定容器启动后默认执行的命令及其参数。它更倾向于提供默认的或可被替代的执行行为。可覆盖性:当使用dockerrun命令启动容器......
  • 使用Docker部署Nacos 2.3.2开启鉴权后无法访问控制台
    dockerrun-d\-eMODE=standalone\-eJVM_XMS=128m\-eJVM_XMX=128m\-eJVM_XMN=128m\-eSPRING_DATASOURCE_PLATFORM=mysql\-eMYSQL_SERVICE_HOST=xxxxxx\-eMYSQL_SERVICE_PORT=xxxx\-eMYSQL_SERVICE_USER=xxxxxx\-eMYSQL_SERVICE_PASSWORD=xxxxxxxx......
  • Docker安装-基于wsl
    本文参考:Windows下wsl2安装Linux原生Docker使用wsl2而非Dockerdesktop安装Docker,体验完全接近Linux的使用Docekr方式。并解决wsl2中Docker启动不了的问题。一、安装wsl2官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual启......
  • es-spark +docker
    本项目使用es+spark的技术,并且采用容器进行项目的构建FROMubuntu:20.04RUNapt-getupdate-y&&apt-getinstallvim-y&&apt-getinstallwget-y&&apt-getinstallssh-y&&apt-getinstallopenjdk-8-jdk-y&&apt-getinstallsudo-y&......
  • DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压安装配置Node)入门
    场景DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139631755以上使用流水线配置和打包springboot后台项目,如果要使用流水线和配置node打包vue项目,可按如下步骤。注:博......
  • 从零开始写 Docker(十八)---容器网络实现(下):为容器插上”网线“
    本文为从零开始写Docker系列第十八篇,利用linux下的Veth、Bridge、iptables等等相关技术,构建容器网络模型,为容器插上”网线“。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心......
  • Docker的Namespace隔离技术
    什么是NamespaceNamespace是Linux内核的一项功能,该功能对内核资源进行分区,以使一组进程看到一组资源,而另一组进程看到另一组资源。Namespace的工作方式通过为一组资源和进程设置相同的Namespace而起作用,但是这些Namespace引用了不同的资源。资源可能存在于多个Namespace......
  • 【网络安全的神秘世界】2024.6.6 Docker镜像停服?解决最近Docker镜像无法拉取问题
    ......
  • DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)
    场景DockerCompose中部署Jenkins(DockerDesktop在windows上数据卷映射):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139491855Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:https://blog.csdn.net/BADAO_LIUMANG_......