使用docker-compose来部署开发环境

docker-compose的作用

docker-comopse可以帮助我们快速搭建起开发环境,比如你可以去把redis,mongodb,rabbitmq,mysql,eureka,configserver等一次部署在本机,然后让它们做为其它项目的基础,这是可以实现的。

容器之间的通讯-links

由于每个docker实例都是一个封闭的环境,所以默认情况下它们是不能共享的,即你的rabbit容器不能连接你的redis容器,你的configserver不能连接你的eureka容器,如果希望让它们之间进行数据通讯,需要设置links属性来实现,而在本机(宿主机)上进行连接时,使用localhost和端口是可以访问这些容器的,这个我们要清楚。

启动顺序-depends_on

而对于启动顺序来说,比如你的configserver依赖于eureka,希望先启动被依赖的容器,再运行自己,这时我们可以使用depends_on属性来实现,当然它也只是启动顺序,不能保证服务真的越来后再去启动另一个,解决的方法是使用失败重试机制restart: on-failure,当configserver失败后,你可以重启,直到成功为止(主是直到eureka启动越来为止)。

容器与容器之间要用服务名通讯

如果我们的具体项目也希望部署到docker-compose里,希望去访问其它的服务,这时,需要使用docker-compose里定义的服务名称,而不是localhost,因为当你的容器起来之后,它的localhost是自己的容器,而不是宿主机,反之在宿主机上,如果希望访问容器,可以使用localhost,这一点在前文中已经提到。

下面是我写的一个部署开发环境的例子

version: "3.3"
services:

  # 公用组件相关配置
  mongodb:
    image: mongo:3.4.10
    ports:
      - "27017:27017"
    networks:
      - dev
    volumes:
      - mongo_data:/data/db

  redis:
    image: redis:3.2-alpine
    networks:
      - dev
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

  rabbit:
    image: rabbitmq:3.6.10-management-alpine
    hostname: rabbit
    ports:
      - "5672:5672"
      - "15672:15672"
      - "61613:61613"
    networks:
      - dev
    environment:
      RABBITMQ_DEFAULT_VHOST: pilipa
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq

  eurekaserver:
    build: ./springcloud/eureka-server
    restart: on-failure
    ports:
      - "8761:8761"
      - "8762:8762"
    networks:
      - dev

  configserver:
      build: ./springcloud/config-server
      restart: on-failure
      ports:
        - "8888:8888"
        - "8889:8889"
      networks:
        - dev
      depends_on:
        - eurekaserver #依赖服务
      links:
        - eurekaserver
      environment:
        SPRING_PROFILES_ACTIVE: devops
      volumes:
        - /Users/lind.zhang/project/config-repo:/config_repo #前面是本地路径,后而是容器里的路径,在configserver里配置的是后面的容器路径

启动与更新

  1. 先打镜像
docker-compose build
  1. 再启动服务
docker-compose up -d #-d是后台运行
  1. 停止服务
docker-compose down
  1. 查看容器的日志
docker logs -f 容器ID

希望本文章对各位学者有所帮助!

原文地址:https://www.cnblogs.com/lori/p/9901084.html

时间: 2024-11-05 21:33:43

使用docker-compose来部署开发环境的相关文章

Docker秒搭建Php7开发环境

原文:Docker秒搭建Php7开发环境 一直听说Docker比较厉害,但是一直没有了解,今天在哔哩哔哩上刷了一下入门课后,简直发现新大陆般,Docker的强大真的了解太晚了.这篇使用Docker搭建php7环境的文章需要一点入门知识.下面开始. 环境 首先安装Docker,无论你是Windows还是Linux.MocOS都可以.安装Docker自行百度. Docker镜像源 访问https://hub.docker.com即可,它是镜像大仓库. 安装Ngnix镜像 输入: docker pul

Docker Compose 一键部署Nginx代理Tomcat集群

Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [[email protected] ~]# tree compose_nginx_tomcat/ compose_nginx_tomcat/ ├── docker-compose.yml ├── mysql │   ├── conf │   │   └── my.cnf │   └── data ├── nginx │   ├── Dockerfile │   ├── nginx-1.12.1.tar.gz │  

vagrant部署开发环境,爽的不是一点点

首先说说vagrant与docker的区别 vagrant是用来管虚拟机的,而docker是管容器的(如不准确,还望指正) docker的启动速度当然是无可比拟的,而vagrant当然不是要很docker比启动速度的,vagrant就是管虚拟机的,虚拟机与容器的区别,大家见仁见智. 再来介绍一下vagrant: Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境---百度百科 首先提一个

利用Docker搭建java项目开发环境

一.需求 一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步骤 2.1:创建本地挂载目录 在宿主host主机上面创建两个目录,一个用来挂载正式环境的war,一个用来挂载测试环境的war,如下图所示 命令:mkdir formal test 接下来用Eclipse创建一个最简单的Dynamic Web Project,只有一个index.jsp然后打包为Tes

使用Vmware虚拟机部署开发环境之Mac OS X系统安装

一.使用VMware虚拟机部署Swift开发环境所需工具: Vmware Workstation 10.0虚拟机软件 VM安装Mac解锁工具Unlock 苹果操作系统(Mac OS X Mavericks 10.9.4) 下载地址:http://pan.baidu.com/s/1qWLkffQ 密码:ewb2 http://blog.csdn.net/baigoocn/article/details/38333181 二.VMware Workstation 10上安装并使用Mac OS X 1

在win10下使用docker快速搭建ruby开发环境

docker在windows下发力的时候必将取代各种虚拟机,并改变程序员的开发习惯,或许还会改变infra的工作. 概要: 在Windows下搭建开发环境一直是infra(我)头疼的事情.为了解决这个问题,跟老板,程序员商量得出的解决办法有以下几种:1.Mac下开发.优点是搭建环境方便,缺点是需要熟悉mac操作.2.Linux下开发.优点也是搭建环境方便,缺点是需要熟悉linux操作.而且UI比Mac难看. 为了方便日常交流,最后变成使用win系统,VNC到linux下开发.还有一种是开虚拟机,

使用Vagrant在Windows下部署开发环境

Vagrant介绍 Vagrant可以提供可配置.可再生.便携的工作环境,它主要是一个中间层技术,它的下层是VirtualBox,VMware等虚拟机软件,它的上层是配置管理系统工具,比如Shell Scripts,Chef,Puppet等可以自动化安装和配置软件的工具. 对你有什么用 对于开发人员来说,Vagrant可以帮你统一团队成员的开发环境.如果你或者你的伙伴创建了一个Vagrantfile,那么你只需要执行vagrant up就行了,所有的软件都会安装并且配置好.团队成员可以通过相同的

使用vagrant部署开发环境

参考文章:http://blog.smdcn.net/article/1308.html 准备工作: 下载安装 VirtualBox :https://www.virtualbox.org/ 下载安装 Vagrant :http://www.vagrantup.com/ 下载需要使用的 box : 官方提供的范例:http://files.vagrantup.com/precise32.box 还可以在 http://www.vagrantbox.es/ 这里下载更多不同系统甚至是已经配置好环境

[部署开发环境]部署django的生成环境nginx+uwsgi+django

#教程 # ubuntu部署django项目 # 部署准备 - ubuntu操作系统 -- vagrant虚拟 - Nginx服务器 -- 安装在ubuntu的web服务器 - uWSGI应用协议服务模块 -- python的uwsgi模块 - python虚拟环境 -- virtualenv - django框架 - nginx 配置(http <--> socket) - uwsgi配置(socket<-->wsgi) - 系统配 详情见图片linux部署django项目图.p