使用docker-compose运行springcloud项目

前言:

  学习Docker的过程中,一直想使用Docker运行SpringCloud程序,今天就将搭建过程记录下来,以作总结。

一、Docker安装

  这里因为一些原因,被迫写了个Centos下的Docker安装脚本。至于为什么被迫,这里先埋下一个伏笔。

#!/bin/bash
# Centos新版本Docker安装:https://www.cnblogs.com/Peter2014/p/7704306.html
# step 1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
yum makecache fast
yum install docker-ce-18.06.0.ce -y
# Step 4: 开启Docker服务
systemctl restart docker

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-‘EOF‘
{
  "registry-mirrors": ["https://vcugatat.mirror.aliyuncs.com"],
  "hosts": [
    "tcp://0.0.0.0:0306",
    "unix:///var/run/docker.sock"
  ]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker

二、使用Maven插件生成镜像

  在本地使用Maven插件可以直接在远程服务器生成镜像,比较方便,但是此方法会暴露Docker服务的端口,可能产生隐患,请谨慎使用!

<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.0.0</version>
    <configuration>
        <!-- Docker服务地址 -->
        <dockerHost>http://122.152.000.000:6030</dockerHost>
        <!-- 镜像名 -->
        <imageName>${project.artifactId}</imageName>
        <!-- Dockerfile文件地址 -->
        <dockerDirectory>src/main/docker</dockerDirectory>
        <imageTags>1.0</imageTags>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

application.yml配置文件中,注册中心的ip修改为容器名。

eureka:
  client:
    serviceUrl:
#      defaultZone: http://localhost:1111/eureka
      defaultZone: http://eureka-server:1111/eureka    #注册中心地址改为容器名

注意:

  请使用自己的docker服务地址,上面的地址本人做过改动;

  Dockerfile文件编写请参考博客:docker部署spring cloud项目。请注意,此Dockerfile文件使用的基础镜像是 frolvlad/alpine-oraclejdk8:slim ,且我打开了服务器上的Docker端口。这两个因素导致了我后面一直重装系统,不得不写一个脚本安装docker。因为一旦使用 frolvlad/alpine-oraclejdk8:slim 镜像,且Docker服务端口开放,我的服务器必定会被注入一个挖矿镜像,从而成为矿机!!因此,我强烈推荐使用官方镜像:openjdk:8,且谨慎开放Docker服务端口。

三、使用Docker搭建SpringCloud项目

常规启动三个镜像,容器是不能联通的,必须手动为三个容器创建一个共同的网络,容器间才可以保持通讯。首先创建一个名为cloud的桥接网络
docker network create -d bridge cloud
依次启动三个镜像,并且连接到创建的cloud网络上
docker run -d --name eureka-server -p 1111:1111 --network cloud eureka-server
docker run -d --name provider -p 8000:8000 --network cloud provider
docker run -d --name consumer -p 8001:8001 --network cloud consumer

可以看到,服务已经注册到注册中心并且可以正常访问。

原文地址:https://www.cnblogs.com/fcml/p/10162832.html

时间: 2024-08-30 18:31:27

使用docker-compose运行springcloud项目的相关文章

Docker Compose的使用

一.背景 继上篇文章之后,学习使用Docker Compose(实际项目中需要做对应的变化) 二.docker-compose 安装 官网使用最新版进行安装 https://github.com/docker/compose/releases/ 例如:1. 安装当前稳定版本 curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/

Docker(8)-Docker Compose

对于大多数的工作,我们都需要多个容器之间的相互配合.幸运的是,Docker提供给了我们一个巧妙的工具--Docker Compose,让我们能够无缝地建立和管理多个容器. 要安装Docker Compose,我们需要先确保已经安装了pip(一个Python包管理器).命令如下: sudo apt-get update sudo apt-get install -y python-pip sudo pip-install docker-compose Docker Compose使用一个名为doc

Docker Compose 项目

http://hongge.blog.51cto.com/ compose项目简介 compose项目来源于之前的Fig项目,使用python代码编写.compose项目主要用于编排部署基于docker的应用.本身与docker/swarm配合度很高. Docker Compose 是 Docker 编排服务的一部分,可以让用户在其它平台快速安装Docker,Swarm 可以让 Docker 容器在集群中高效运转,而 Compose 可以让用户在集群中部署分布式应用.简单的说,Docker Co

Docker 系列五(Docker Compose 项目).

一.概念 Docker Compose 是官方编排项目之一,负责快速的部署分布式应用.它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML格式)来定义一种相关联的应用容器为一个项目. Docker  Compose 中有两个重要的概念: 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例.项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义. Docker Comp

docker初体验:Docker部署SpringCloud项目eureka-server

Docker部署SpringCloud项目eureka-server 1 创建eureka-server工程 创建父工程cloud-demo,其pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

Docker Compose 项目打包部署

Docker Compose 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 Docker 和 Compose兼容性看下图:          

在docker中用Tomcat运行web项目

本文旨在用最通俗的语言讲述最枯燥的基本知识 上一篇文章<为什么要用docker>已经讲述了什么是docker以及我们要用docker的原因,并且讲解了如何安装docker.这时候很多读者磨拳擦脚跃跃欲试但却发现安装好docker之后就无从下手了,那么,接下来,小编会从以下方面讲述docker的一些基础知识,当然,理论都是生硬的,所以小编选取了javaweb项目中最常用的一个软件--tomcat的安装和使用来引导学习一些docker相关的知识,借此让读者能够从实战的角度去理解docker为什么会

ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose)

原文:ASP.NET Core 如何在运行Docker容器时指定容器外部端口(docker compose) 前面我写了一系列关于持续集成的文章,最终构建出来的镜像运行之后,应该会发现每次构建运行之后端口都变了,这对于我们来说是十分不方便的,所以我们可以通过修改docker compose的配置文件来完成我们的需求. 熟悉Docker的都应该知道容器运行时其内部会有一个端口以映射到我们外部的端口,我们需要固定的就是这个外部端口. 打开 docker-compose.override.yml 文件

docker compose项目构建

##docker compose安装1.安装epel源 yum install epel-releae -y 2.安装python-pip yum install -y python-pip 3.安装docker compose pip install docker-compose 4.查看docker compose docker-compose version docker compose项目构建 #新建项目文件夹并切换进入项目文件夹 [email protected]:~#mkdir xi