NEO4J的安装

图形数据库

version: '3'
services:
    neo4j:
        image: neo4j:3.5.28-community
        ports:
            - "7474:7474"
            - "7687:7687"
        restart: always
        container_name: neo4j
        volumes:
            - neo4j:/var/lib/neo4j/data
            - /var/log/neo4j:/logs
volumes:
        neo4j:
            external: true

如果不需要密码验证,则添加如下内容

    environment:
        - NEO4J_AUTH=none

初始用户名/密码

neo4j/neo4j

docker安装kafka

version: '2'

services:
  zoo1:
    image: zookeeper
    container_name: zoo
    environment:
            - ALLOW_ANONYMOUS_LOGIN=yes
    volumes:
            - $PWD/conf:/conf
    ports:
      - 2181:2181

  kafka1:
    image: 'bitnami/kafka:latest'
    ports:
      - '9092:9092'
    container_name: kafka1
    volumes:
      - "kafka_data1:/bitnami"
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181
      - KAFKA_BROKER_ID=1
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
      - LOG.RETENTION.HOURS=6400 ## 这句是日志保存时间
    depends_on:
      - zoo1

  kafka2:
    image: 'bitnami/kafka:latest'
    ports:
      - '9093:9092'
    container_name: kafka2
    volumes:
      - "kafka_data2:/bitnami"
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181
      - KAFKA_BROKER_ID=2
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9093
    depends_on:
      - zoo1

  kafka3:
    image: 'bitnami/kafka:latest'
    ports:
      - '9094:9092'
    container_name: kafka3
    volumes:
      - "kafka_data3:/bitnami"
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zoo1:2181
      - KAFKA_BROKER_ID=3
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9094
    depends_on:
      - zoo1
volumes:
        kafka_data1:
                external: true
        kafka_data2:
                external: true
        kafka_data3:
                external: true

简单的部署docker和docker-compose的脚本

基于UBUNTU

#!/bin/env bash
apt update
apt upgrade -y
apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
apt update
apt install docker-ce docker-ce-cli containerd.io -y
#!/bin/env bash
COMPOSEVERSION=$(curl -s https://github.com/docker/compose/releases/latest/download 2>&1 | grep -Po [0-9]+\.[0-9]+\.[0-9]+)
curl -L "https://get.daocloud.io/docker/compose/releases/download/$COMPOSEVERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

目前docker-compose已经是2.x版本了,把COMPOSEVERSION赋值1.29.2

/etc/docker/daemon.json

{
  "registry-mirrors": ["https://0xj5rnq5.mirror.aliyuncs.com"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

容器运行jar包输出日志到宿主机

建立start.sh

#!/bin/env bash
java -jar -Duser.timezone=GMT+08 -Xms512m -Xmx512m xxx.jar >> /var/log/xxx/xxx.log 2>&1

建立Dockerfile

FROM java:8
RUN mkdir /opt/xxx
COPY ./xxx.jar /opt/xxx/xxx.jar
COPY ./start.sh /opt/xxx/start.sh
WORKDIR /opt/xxx
ENTRYPOINT ["sh","/opt/xxx/start.sh"]
EXPOSE 8080

编辑docker-compose.yml

version: '2'
services:
        xxx:
                image: xxx:openjdk-8
                container_name: xxx

                ports:

                        - "8080:8080"
                mem_limit: 1024m
                restart: always
                volumes:
                        - /etc/localtime:/etc/localtime:ro
                        - /var/log/xxx:/var/log/xxx