当前位置: 首页 > 面试题库 >

部署docker-compose容器

萧凡
2023-03-14
问题内容

我正在尝试部署使用docker-compose构建的应用程序,但是感觉好像我朝着完全错误的方向前进。

  1. 我的一切工作都在本地docker-compose up进行-通过适当的网络和主机启动我的应用程序。
  2. 我希望能够在生产机器上运行容器和网络的相同配置,而只是使用不同的.env文件。

我当前的工作流程如下所示:

docker save [web image] [db image] > containers.tar
zip deploy.zip containers.tar docker-compose.yml
rsync deploy.zip user@server

ssh user@server
unzip deploy.zip ./
docker load -i containers.tar

docker-compose up

在这一点上,我希望docker-compose up当它们到达那里时能够再次运行,但这试图根据docker-compose.yml文件重建容器。

我有一种明显的失落感。我是否应该通过完整的应用程序进行交付,然后在服务器上构建映像?如果要从注册表存储/加载图像,如何开始组成容器?


问题答案:

问题是我在开发和生产中使用了相同的docker-compose.yml文件。

应用程序服务未指定存储库名称或标签,因此当我docker-compose up在服务器上运行时,它只是尝试在应用程序的源代码目录(服务器上不存在)中构建Dockerfile。

我最终通过在本地docker-compose.yml中添加显式图像字段解决了问题。

version: '2'
services:
  web:
    image: 'my-private-docker-registry:latest'
    build: ./app

然后创建用于生产的替代撰写文件:

version: '2'
services:
  web:
    image: 'my-private-docker-registry:latest'
    # no build field!

docker-compose build本地运行后,将使用存储库名称my-private-docker- registry和标记构建Web服务映像latest

这只是将映像推送到存储库的一种情况。

docker push 'my-private-docker-registry:latest'

在运行时docker pull,可以安全地停止并使用新映像重新创建正在运行的容器。



 类似资料:
  • Docker Compose允许定义和运行单主机,多容器Docker应用程序。 使用Compose,您可以使用Compose文件来配置MinIO服务。 然后,使用单个命令,您可以通过你的配置创建并启动所有分布式MinIO实例。 分布式MinIO实例将部署在同一主机上的多个容器中。 这是建立基于分布式MinIO的开发,测试和分期环境的好方法。 1. 前提条件 熟悉 Docker Compose. D

  • 经过前文对Docker Compose的讲解,我们以Spring Cloud章节的几个示例项目为例,讲解如何使用Docker Compose部署项目: 准备工作 使用到的示例项目有: 项目名称 作用 microservice-api-gateway API Gateway microservice-consumer-movie-ribbon-with-hystrix 服务消费者 microserv

  • 本文向大家介绍Docker-compose部署gitlab的方法步骤,包括了Docker-compose部署gitlab的方法步骤的使用技巧和注意事项,需要的朋友参考一下 Docker-compose部署gitlab 1、安装Docker 安装必要工具 添加Docker-ce镜像源并安装 添加Docker镜像加速 2、安装Docker-compose 下载Docker-compose二进制文件并添

  • Docker Containerizer(用 Docker 容器部署应用) Mesos 0.20.0 开始支持通过 Docker 镜像来启动任务,同时也支持部分的 Docker 参数。当然我们计划在未来支持更多的参数。 用户可以将 Docker 镜像作为一个任务启动,也可以作为一个 Executor 启动。 以下部分将描述 API 的变化以及支持 Docker 的新功能,还有如何设置 Docker

  • 本文向大家介绍docker-compose部署php项目实例详解,包括了docker-compose部署php项目实例详解的使用技巧和注意事项,需要的朋友参考一下 1.制定特定扩展的PHP镜像 2.编写yml文件 3.配置default.conf文件 4.修改mysql允许远程连接并新建数据库 5.创建并且启动容器 6.新建index.php测试mysql连接

  • 我正在尝试容器化一个nodejs应用程序。该应用程序在我手动安装并运行redis的节点容器上运行良好,但当我尝试使用docker-compose文件在容器中运行该应用程序时,我得到一个错误: “错误错误:Redis连接到localhost:6379失败-连接Econnn拒绝127.0.0.1:6379”。 我将在下面发布我的docker-compose.yml和dockerfile以及当我尝试并执