docker

docker 涉及到 容器,镜像,仓库概念,镜像可以在镜像仓库pull 下来也可以自己build一个镜像,通常我们会编写一个dockerfile文件记录镜像的制作过程,然后docker build -t image_name Dockerfile_path 构建.其实docker的镜像实际上是由一层一层的文件系统构成。

  • dockerfile: 构建单个服务镜像,以脚本形式
  • docker-compose:是单机管理,编排容器,可以同时管理多个 container
  • k8s:跨主机编排

一、dockerfile 方式 docker build -t “image-name” .

1. dockerfile

FROM openjdk:8-jre-alpine
MAINTAINER    lbstlbst@163.com
LABEL description="some description information "

#modify timezone
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#chinese
ENV LANG C.UTF-8

#auto run jar when starting
#app_start.sh此时在容器的根目录 通过docker info 可以查看
ENTRYPOINT ["sh","/app_start.sh"]

在这里插入图片描述

2. app_start.sh

#!/bin/bash
#使用时修改path env_name  jar_name
sh path/start.sh -a env_name -p jar_name

3. start.sh

#!/bin/bash
param1=$1
value1=$2
param2=$3
value2=$4
param3=$5
value3=$6
active=test
project=${PWD##*/}
otherParams=""

if [ "$param1" == "-a" ]; then
    if [ $value1 ]; then
        active=$value1
    fi
fi

if [ "$param2" == "-p" ]; then
    if [ $value2 ]; then
        project=$value2
    fi
fi

if [ "$param3" == "-o" ]; then
    if [ $value3 ]; then
        otherParams=$value3
    fi
fi
#${project} 如果只是jar的名称话 那start.sh需要和jar包放在同一目录
java -jar ${project}".jar" --spring.profiles.active=${active} ${otherParams}

二、docker-compose方式 docker-compose up -d
1. docker-compose.yml

version: '2'
services:
    eureka:
        image: eureka-image
        container_name: "platform-eureka"
        volumes:
            - /data/docker/platform/eureka/platform-service-eureka.jar:/platform-service-eureka.jar
            - /data/docker/platform/eureka/app_start.sh:/app_start.sh
            - /data/docker/public_image/start.sh:/start.sh
        ports:
            - "20100:20100"
        hostname: discovery

    config:
        image: config-image
        container_name: "platform-config"
        volumes:
            - /data/docker/platform/config/platform-service-config.jar:/platform-service-config.jar
            - /data/docker/platform/config/app_start.sh:/app_start.sh
            - /data/docker/public_image/start.sh:/start.sh
        ports:
            - "20200:20200"
        depends_on:
            - eureka
        links:
 		    - eureka

- 注:docker-compose方式需要把jar 包 start.sh app_start.sh
放在volumes挂载宿主机目录里如/data/docker/platform/eureka/platform-service-eureka.jar

- image: eureka-image 是build 构建的的镜像名,也可以指定镜像仓库的image url

- 此时links 是在同一台主机连接,要想跨主机连接需要借助其他工具如 weave

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值