微服务常用 Docker 软件

1、Mysql

一定要将数据挂载
如果是再次启动,需要先把/docker/mysql/data 的数据取出,然后把 data 目录删除,再进行安装

# 8.0
docker run -d \
--name mysql8 \
-p 3306:3306 \
-v /docker/mysql8/conf.d:/etc/mysql/conf.d  \
-v /docker/mysql8/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=<密码> \
--restart always \
mysql:8.0.26

# 5.7
docker run -d \
--name mysql5.7 \
-p 3305:3306 \
-v /docker/mysql5.7/conf.d:/etc/mysql/conf.d \
-v /docker/mysql5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=<密码> \
--restart always \
mysql:5.7.35

2、Redis & Treesoft

mkdir -p /docker/redis/data && cat > /docker/redis/redis.conf <<EOF
#允许外网访问
bind 0.0.0.0
daemonize NO
protected-mode no
#requirepass 123456
EOF

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

# 账号密码都是 ,连接时使用 reis 容器内的ip
docker run -d \
-p 8099:8080 \
--name treenms \
--restart always \
fuyong/treenms:latest

3、Rabbitmq

docker run -d \
--name rabbit \
-p 15672:15672 \
-p 5672:5672 \
--hostname my-rabbit \
--restart always \
rabbitmq:3.9.8

## 进入容器启用图形化插件
docker exec -it rabbit /bin/bash
rabbitmq-plugins enable rabbitmq_management

4、Es & kibana & Logstash

# 1、创建新的虚拟网络
docker network create elk

# 这里的 --name 一定是elasticsearch,以内kibana.yml的配置文件如下,否则需要进容器修改配置
<<<<<<<<<<<<<<<<
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true 
>>>>>>>>>>>>>>>>
# 2、启动 es
docker run -d \
--name elasticsearch \
--net elk  \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-v /docker/es/plugins:/usr/share/elasticsearch/plugins \
-v /docker/es/data:/usr/share/elasticsearch/data \
elasticsearch:7.14.2

chmod 777 /docker/es/data && docker restart elasticsearch
(启动报错,因为没有权限,需要执行 chmod 777 /docker/es/data)

# 3、安装中文分词器IKAnalyzer,并重新启动 (可选)
# 7.14.2 似乎自带中文分词器

# 4、启动kibana
docker run -d \
--name kibana \
--net elk \
-p 5601:5601 \
kibana:7.14.2

7.14.2 版本不支持springdata。下面是6.8.19 版本:

# 1、创建新的虚拟网络
docker network create elk

# 2、启动 es
docker run -d \
--name elasticsearch \
--net elk  \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-v /docker/es/plugins:/usr/share/elasticsearch/plugins \
-v /docker/es/data:/usr/share/elasticsearch/data \
elasticsearch:6.8.19

chmod 777 /docker/es/data && docker restart elasticsearch
(启动报错,因为没有权限,需要执行 chmod 777 /docker/es/data)

# 3、安装中文分词器IKAnalyzer,并重新启动 (可选)
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.19/elasticsearch-analysis-ik-6.8.19.zip && \
unzip elasticsearch-analysis-ik-6.8.19.zip -d /docker/es/plugins/ik && \
docker restart elasticsearch

# 4、启动 kibana
docker run -d \
--name kibana \
--net elk \
-p 5601:5601 \
kibana:6.8.19

# 5、配置并启动 logstash
# 目前未测试成功
mkdir -p /docker/logstash/conf.d
cat > /docker/logstash/logstash.yml <<EOF
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
EOF 
cat > /docker/logstash/conf.d/log.conf <<EOF
input {
    beats {
    	port => 5044
    	codec => "json"
	}
}
output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout { codec => rubydebug }
}
EOF

docker run -d \
--name logstash \
--net elk \
-p 5044:5044 \
-v /docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /docker/logstash/conf.d/:/usr/share/logstash/conf.d/ \
logstash:6.8.19

5、Minio

新版本需要 -console-address “:9200” 绑定静态端口,不然无法访问

# 新版本
docker run -d \
--name minio \
-p 9999:9000 \
-p 9200:9200 \
-v /docker/minio/data:/data \
-v /docker/minio/config:/root/.minio \
-e "MINIO_ACCESS_KEY=<账号>" \
-e "MINIO_SECRET_KEY=<密码>" \
--restart always \
minio/minio \
server /data \
--console-address ":9200"

# 旧版本--2021以前
docker run -d \
--name minio \
-p 9000:9000  \
-e "MINIO_ACCESS_KEY=<账号>" \
-e "MINIO_SECRET_KEY=<密码>" \
-v /docker/minio/data:/data \
-v /docker/minio/config:/root/.minio \
--restart=always \
minio/minio:RELEASE.2020-12-03T00-03-10Z \
server /data

6、Mongo & Mongo-express

docker run -d \
--name mongo \
-v /docker/mongo/db:/data/db \
-p 27017:27017 \
-e  MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--restart=always \
mongo:5.0

docker run -d \
--name mongo-express \
-p 8081:8081 \
--link mongo \
-e ME_CONFIG_MONGODB_ADMINUSERNAME='root' \
-e ME_CONFIG_MONGODB_ADMINPASSWORD='123456' \
--restart=always \
mongo-express:0.54

7、Nacos

docker run -d \
--name nacos \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
--restart always \
nacos/nacos-server

# 访问 nacos/nacos
http://ip:8848/nacos/index.html
#端口 与主端口的偏移量 描述
9848 1000 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
9849 1001 服务端gRPC请求服务端端口,用于服务间同步等

使用数据库:

docker exec -it nacos bash
// 修改容器配置
vi conf/application.properties

在这里插入图片描述

创建数据库表:

https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql 

然后重启。

8、Sentinel

docker run -d \
--name sentinel \
-p 8858:8858 \
--restart always \
bladex/sentinel-dashboard
# 访问 sentinel/sentinel
http://localhost:8858/

9、Consul

docker run -d \
--name consul \
-p 8500:8500 \
--restart always \
consul:1.9 \
agent -dev -client 0.0.0.0 -ui

10、Zipkin

docker run -d \
--name zipkin \
-p 9411:9411 \
--restart always \
openzipkin/zipkin 

Guess you like

Origin blog.csdn.net/never_late/article/details/120956544