清茶书香

一杯清茶,一本书籍,一个下午。


  • 首页

  • 归档

  • 分类

  • 关于

  • 搜索
Redis JPA Solr SpringData SpringMVC localRepository local Mapper 事务 Mybatis JDBC AOP DI IOC 常用函数 触发器 存储过程 Promise Gateway SpringCloud vue-cli axios es6 webpack npm vue 个性化 zsh 终端 caffeine jvm缓存 guava cache validation Mapping MapStruct comment 小程序 建站 WeHalo config logback plugins database idea maven spring https http nginx password RabbitMQ 秒杀系统 Windows MySQL 数据备份 halo SpringBoot shell Linux ip Optional Stream Lambda k8s Docker 列编辑 vim MacOS 图片合成 Java 远程联调 nps 内网穿透

docker启动常用软件

发表于 2021-03-02 | 分类于 Docker | 0 | 阅读次数 503

docker启动redis

下载redis.conf文件

curl下载文件curl -O url

curl -O http://download.redis.io/redis-stable/redis.conf

配置redis.conf文件

bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程(可选),改为yes会使配置文件方式启动redis失败
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)`

启动redis

docker run -d -p 6379:6379 --name redis --restart=always \
-v redis/conf/redis.conf:/etc/redis/redis.conf \
-v redis/data:/data \
redis redis-server /etc/redis/redis.conf --appendonly yes

docker启动RabbitMQ

docker run -d \
--hostname rabbit \
--name rabbit \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
rabbitmq

docker启动tomcat

docker run -d --name=tomcat -p 8080:8080 \
-v /usr/local/webapps:/usr/local/tomcat/webapps \
tomcat:9-jdk8

docker启动nginx

docker run -d --name nginx --restart always \
--network=proxy-net -p 80:80 -p 443:443 \
-v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /usr/local/nginx/cert:/etc/nginx/cert:ro \
nginx

docker启动zipkin

docker run -d -p 9411:9411 openzipkin/zipkin

docker启动nacos-server

配置文件

  • custom.properties
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*

# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200

# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true

docker-compose启动

  • docker-compose.yaml单机模式启动
version: "2"
services:
  nacos:
    image: nacos/nacos-server:latest
    container_name: nacos-standalone
    environment:
    - PREFER_HOST_MODE=hostname
    - MODE=standalone
    volumes:
    - ./standalone-logs/:/home/nacos/logs
    - ./init.d/custom.properties:/home/nacos/init.d/custom.properties #配置文件位置视自己的文件位置修改
    restart: always
    ports:
    - "8848:8848"

docker方式启动

docker run -d \
--name nacos-standalone -p 8848:8848 \
--restart=always -e PREFER_HOST_MODE=hostname \
-e MODE=standalone \
-v init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v standalone-logs/:/home/nacos/logs \
nacos/nacos-server

docker启动gitlab

 sudo docker run -d \
     --hostname local.gitlab.com \
     --name gitlab \
     --restart always \
     -p 30000:22 -p 80:80 \
     -v $HOME/gitlab/data:/var/opt/gitlab \
     -v $HOME/gitlab/logs:/var/log/gitlab \
     -v $HOME/gitlab/config:/etc/gitlab \
     gitlab/gitlab-ce

启动后需要在hosts文件中配上映射127.0.0.1 local.gitlab.com
然后http访问这个域名即可。ssh的22端口已被占用,所有要换个端口。其实ssh的访问方式我并没有搞成功,看其他的文章说22,443端口还需要证书等,而我这个本地的服务也是临时使用也就没有继续研究下去。如果又知道的可以评论里说下,在此感谢!

后续:之后闲下来又找了些文章看了看,ssh的是可以通过nginx代理去实现的,同样的https也是一样。

docker启动webdav服务

Github: BytemarkHosting

建议不使用自签名ssl,使用自己的证书在nginx中做代理,也就是请求nginx用https,代理到服务时使用http即可。

docker run -d --name webdav --restart always \
--network proxy-net \
-v /srv/dav:/var/lib/dav \
-e AUTH_TYPE=Basic \
-e USERNAME=alice \
-e PASSWORD=secret1234 \
bytemark/webdav

这个服务我未指定暴露的端口,并将其与nginx放在同一个网络下,如此nginx代理时就可以使用http://{service-name}:{service-port}这样的方式代理(只针对nginx也是容器启动,若正常编译安装的nginx则还是需要暴露端口再代理。)

离线docker使用镜像

在公网环境下载镜像

  • 保存镜像为压缩包(保存到当前目录)
docker save -o nginx.tar.gz nginx:latest
  • 上传压缩包到内网环境中
  • 载入压缩包中的镜像
docker load -i nginx.tar.gz

使用Dockerfile编译镜像

根据Dockerfile的语法编译镜像,目前本人还只能在原有镜像基础上修改,还不能从零编译一个镜像。

docker启动oracle数据库

docker run --name oracle11g -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g

使用的是快捷版oracle(XE版将最多存储11GB的用户数据,同时最多使用1GB内存和主机上的一个CPU。),oracle默认参数如下:

hostname: localhost
port: 1521
sid: xe
username: system
password: oracle

完整版参考:docker搭建oracle-helowin-oracle-11g

完整版需要约7G存储,此快捷版需2G存储(链接文章中也介绍了一个xe版,说是只需要700M,没有试过。此镜像虽比较大,但在DockerHub中下载量比较多)。

docker启动redis集群

此方法有问题,集群可以搭建好但节点无法访问(密码的问题),暂时尚未解决。

这里我使用了docker compose启动。

  • docker-compose.yml
version: "3"
services:
  redis-6371:
    image: redis:latest
    container_name: redis-6371
    ports:
      - "6371:6379"
    volumes:
      - ./6371/conf/redis.conf:/etc/redis/redis.conf
      - ./6371/data:/data
    networks:
      - redis-cluster
    command: redis-server /etc/redis/redis.conf
  redis-6372:
    image: redis:latest
    container_name: redis-6372
    ports:
      - "6372:6379"
    volumes:
      - ./6372/conf/redis.conf:/etc/redis/redis.conf
      - ./6372/data:/data
    networks:
      - redis-cluster
    command: redis-server /etc/redis/redis.conf
  redis-6373:
    image: redis:latest
    container_name: redis-6373
    ports:
      - "6373:6379"
    volumes:
      - ./6373/conf/redis.conf:/etc/redis/redis.conf
      - ./6373/data:/data
    networks:
      - redis-cluster
    command: redis-server /etc/redis/redis.conf
  redis-6374:
    image: redis:latest
    container_name: redis-6374
    ports:
      - "6374:6379"
    volumes:
      - ./6374/conf/redis.conf:/etc/redis/redis.conf
      - ./6374/data:/data
    networks:
      - redis-cluster
    command: redis-server /etc/redis/redis.conf
  redis-6375:
    image: redis:latest
    container_name: redis-6375
    ports:
      - "6375:6379"
    volumes:
      - ./6375/conf/redis.conf:/etc/redis/redis.conf
      - ./6375/data:/data
    networks:
      - redis-cluster
    command: redis-server /etc/redis/redis.conf
  redis-6376:
    image: redis:latest
    container_name: redis-6376
    ports:
      - "6376:6379"
    volumes:
      - ./6376/conf/redis.conf:/etc/redis/redis.conf
      - ./6376/data:/data
      - ./run-add-cluser.sh:/bin/run-add-cluster.sh
    networks:
      - redis-cluster
    depends_on:
      - redis-6371
      - redis-6372
      - redis-6373
      - redis-6374
      - redis-6375
    command: run-add-cluster.sh

networks:
  redis-cluster:
    external: true
    name: redis-cluster

6个节点文件夹中放入对应的配置文件redis.conf,示例如下:

port 6379
requirepass <password>
masterauth <password>
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
#cluster-announce-ip用的是容器的名称,6个配置文件只需要改这个即可
cluster-announce-ip redis-6376
cluster-announce-port 6379
cluster-announce-bus-port 16379

首先使用docker network create redis-cluster创建一个集群网络,然后使用docker network inspect redis-cluster查看Gateway确定这个网络的IP段。

所有容器启动后将节点加入到集群中的脚本run-add-cluster.sh:

#!/bin/bash

redis-server /etc/redis/redis.conf

redis-cli -a <password> --cluster create 172.18.0.2:6379 172.18.0.3:6379 172.18.0.4:6379 172.18.0.5:6379 172.18.0.6:6379 172.18.0.7:6379 --cluster-replicas 1

将脚本中的集群节点IP改为自己的网段IP,IP的最后一位一般不需要修改,大多数情况下都是分配2~6的IP(由于加节点时不能使用hostname:port方式,所以只能采取预测IP的方式。)

准备工作做完了,就可以使用docker-compose up -d或者docker compose up -d启动集群服务了。前者需要使用pip安装pip install docker-compose,后者需要查看自己的docker是否支持Compose(docker info)

Client:
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  compose: Docker Compose (Docker Inc., 2.0.0-beta.4)
  scan: Docker Scan (Docker Inc., v0.8.0)
Bennett wechat
欢迎收藏我的微信小程序,方便查看更新的文章。
  • 本文作者: Bennett
  • 本文链接: https://hibennett.cn/archives/docker-run-app
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# Java # Docker
MacOS终端个性化设置
vue学习记录之npm
  • 文章目录
  • 站点概览
Bennett

Bennett

60 日志
28 分类
74 标签
RSS
Github E-mail Gitee QQ
Creative Commons
Links
  • MacWk
  • 知了
0%
© 2020 — 2023 hibennett.cn版权所有
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4

浙公网安备 33010802011246号

    |    浙ICP备2020040857号-1