小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Docker 安装(centos)
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
# 系统自启
systemctl enable docker
systemctl start docker
Doker Compose 安装
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
基础设施安装
MySQL
安装 Mysql 57
docker pull mysql:5.7
docker run -d -p 3306:3306 --name docker-mysql \
-v /opt/docker/mysql57/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
RabbitMQ
安装 RabbitMQ
docker pull rabbitmq:management
docker run -d -p 15672:15672 -p 5672:5672 --name rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
rabbitmq:management
Redis
安装 Redis
docker pull redis:6.0.10
docker run -d --name redis -p 6379:6379 redis:6.0.10 --requirepass "123456"
# 可选参数 --appendonly yes
# 开启后可挂载 -v /docker/host/dir:/data \
SonarQube
安装 SonarQube
docker pull sonarqube:8.9.1-community
docker run -d --name sonar -p 19100:9000 \
-v /opt/docker/sonar/conf:/opt/sonarqube/conf \
-v /opt/docker/sonar/data:/opt/sonarqube/data \
-v /opt/docker/sonar/logs:/opt/sonarqube/logs \
-v /opt/docker/sonar/extensions:/opt/sonarqube/extensions \
-e "SONAR_JDBC_USERNAME=sonar" \
-e "SONAR_JDBC_PASSWORD=123456" \
-e "SONAR_JDBC_URL=jdbc:postgresql://192.168.57.151:5432/db_sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
-e "SONAR_SEARCH_PORT=9901" \
sonarqube:8.9.1-community
如果遇到以下错误
执行以下命令即可,Sonar 静态代码分析利用了 ES,ES 比较吃配置。
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
Sentinel
安装 Sentinel Dashboard
docker pull bladex/sentinel-dashboard:1.8.0
docker run -d -p 8858:8858 --name sentinel-dashboard \
-e AUTH_USERNAME=sentinel \
-e AUTH_PASSWORD=sentinel
bladex/sentinel-dashboard:1.8.0
ES
单个节点
docker pull elasticsearch:7.7.1
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.1
Mongo
docker pull mongo:4.4.5
docker run -d --name mongodb -p 27017:27017 \
-v /mysoft/mongodb/configdb:/data/configdb/ \
-v /mysoft/mongodb/db/:/data/db/
mongo:4.4.5 --auth
db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "readWrite", db: "basedata" } ] });
Xxl-job
docker pull xuxueli/xxl-job-admin:2.2.0
docker run -d -p 8181:8080 --name xxl-job-admin \
-e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.57.151:3307/xxl_job?useUnicode=true&characterEncoding=UTF-8 --spring.datasource.password=123456" \
-v /root/xxl-job-log:/data/applogs \
xuxueli/xxl-job-admin:2.2.0
Nginx
docker pull nginx:latest
docker run -d -p 8080:80 --restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /root/nginx/nginx.conf:/etc/nginx/conf.d/default.conf \
nginx:latest
Kong
docker network create kong-net
docker run -d -p 5432:5432 --name kong-database \
--restart=always --network=kong-net \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/postgresql/data:/var/lib/postgresql/data \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
-e "POSTGRES_PASSWORD=abcd1234" \
postgres:9.4
docker run --network=kong-net --restart=on-failure \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=abcd1234" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:2.0.4 kong migrations bootstrap
docker run -d -p 8088:8000 -p 8443:8443 -p 8001:8001 -p 8444:8444 --name kong-demo \
--restart=always --network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=abcd1234" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-e "KONG_TRUSTED_IPS=0.0.0.0/0,::/0" \
-v /etc/localtime:/etc/localtime:ro \
kong:2.0.4
Alertmanager
docker run -u root -d -p 9093:9093 --name alertmanager \
-v /root/alertmanager-data:/alertmanager-data \
prom/alertmanager \
--config.file=/alertmanager-data/alertmanager.yml
Prometheus
docker run -d -u root -p 9090:9090 --name prometheus \
-v /etc/localtime:/etc/localtime:ro \
-v /root/prometheus-data:/prometheus-data \
-v /root/prometheus-data/data:/prometheus-data/data \
prom/prometheus \
--web.enable-lifecycle \
--storage.tsdb.path=/prometheus-data/data \
--storage.tsdb.retention.time=30d \
--config.file=/prometheus-data/prometheus.yml
Rancher 2.5.X
docker run -d --restart=unless-stopped \
-p 18080:80 -p 443:443 \
-v /opt/rancher:/var/lib/rancher \
--privileged \
rancher/rancher:latest
Kafka 2.7.0
Docker-Compose 方式安装
version: '3'
services:
zookeeper:
image: zookeeper:3.5.9
container_name: kafka-zk
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
ports:
- "2181:2181"
networks:
- kfk-tier
kafka:
image: 'bitnami/kafka:2.7.0'
ports:
- '9092:9092'
- '9093:9093'
environment:
- KAFKA_LISTENERS=INSIDE://:9093,OUTSIDE://:9092
- KAFKA_ADVERTISED_LISTENERS=INSIDE://:9093,OUTSIDE://192.168.57.151:9092
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_INTER_BROKER_LISTENER_NAME=INSIDE
depends_on:
- zookeeper
networks:
- kfk-tier
networks:
kfk-tier:
driver: bridge