docker安装ng+tomcat+es+kiba+sql

nginx

docker pull nginx

html文件路径: /etc/nginx/html
配置文件路径:/etc/nginx/nginx.conf
日志存放路径:/var/log/nginx

mkdir -p /docker/nginx/log
vim /docker/nginx/conf/nginx.conf
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
vim /docker/nginx/html/index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

docker run --name nginx -d -p 80:80 -v /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /docker/nginx/html:/etc/nginx/html -v /docker/nginx/log:/var/log/nginx nginx

curl localhost

在这里插入图片描述

在这里插入图片描述
端口暴露:
docker的 80>centos 防火墙80>阿里云安全的80>外网

进入nginx

docker exec -it nginx /bin/bash
whereis nginx

在这里插入图片描述

cd /etc/nginx

--------------------------tomcat

docker pull tomcat:9.0

docker run -d -p 8080:8080 --name mytomcat tomcat

开通端口号

firewall-cmd --zone=public --add-port=80/tcp --permanent  

重启防火墙

firewall-cmd --reload

查看开放端口

firewall-cmd --list-ports

在这里插入图片描述
进入容器

docker exec -it mytomcat /bin/bash


没有webapps 会导致找不到报404 默认为最小的镜像把不必要的都剔除了
在这里插入图片描述
在这里插入图片描述
将webapps.dist下的所有拷贝到webapps

cp -r webapps.dist/* webapps

再次刷新
在这里插入图片描述

mkdir /docker/tomcatZpCs/webapps
mkdir /docker/tomcatZpCs/conf
mkdir /docker/tomcatZpCs/logs

docker cp 容器id:/usr/local/tomcat/conf /docker/

docker run -d -p 映射端口:tomcat端口-v /docker/tomcatZpCs/webapps:/usr/local/tomcat/webapps -v /docker/tomcatZpCs/conf:/usr/local/tomcat/conf -v /docker/tomcatZpCs/logs:/usr/local/tomcat/logs -v /etc/localtime:/etc/localtime --name tomcatZpCs tomcat:8

elasticsearch

官方文档提供了

mkdir -p /docker/elasticsearch/config
mkdir -p /docker/elasticsearch/data
mkdir -p /docker/elasticsearch/plugins
mkdir -p /docker/elasticsearch/backup
mkdir -p /docker/elasticsearch/logs
vi /docker/elasticsearch/config/elasticsearch.yml

文档授权

chmod 777 /docker/elasticsearch/data
chmod 777 /docker/elasticsearch/config/elasticsearch.yml
chmod 777 /docker/elasticsearch/plugins  
chmod 777 /docker/elasticsearch/backup 
chmod 777 /docker/elasticsearch/logs

单节点

cluster.name: my-application
node.name: node-1
node.attr.rack: r1
network.host: 0.0.0.0
network.publish_host: 192.168.9.164
http.port: 9200
transport.tcp.port: 9300

docker run -it --name elasticsearch -d -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -v /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /docker/elasticsearch/data:/usr/share/elasticsearch/data -v /docker/elasticsearch/plugins/:/usr/share/elasticsearch/plugins  elasticsearch:7.13.3 
cluster.name: elasticsearch‐cluster
# 集群名
# # 节点名
node.name: es‐node1
# # 绑定host,0.0.0.0代表当前节点的ip
network.host: 0.0.0.0
# # 设置其它节点和该节点交互的ip地址,如果不设置它会自动判断,值必须是个真实的ip地址(本机ip)
network.publish_host: 192.168.9.164
# # 设置对外服务的http端口,默认为9200
http.port: 9200
http.host: 0.0.0.0
# # 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# # 表示这个节点是否可以充当主节点
node.master: true
# # 是否充当数据节点
node.data: true
# # 所有主从节点ip:port
discovery.seed_hosts: ["192.168.22.130:9300"]
# # 这个参数决定了在选主过程中需要 有多少个节点通信 预防脑裂
discovery.zen.minimum_master_nodes: 1

创建文件

mkdir -p /docker/kibana/config
vi /docker/kibana/config/kibana.yml

查看es内部地址

docker inspect es容器id

在这里插入图片描述

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://172.17.0.3:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

docker run -d  --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kibana -p 5601:5601 -v /docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml   kibana:7.13.3

kafka

docker run -d --name zookeeper -p 2181:2181  zookeeper

KAFKA_ZOOKEEPER_CONNECT=172.17.0.3:2181 (启动后的zk再docker的地址)
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.9.110:9092 (虚拟机地址)
KAFKA_LISTENERS=PLAINTEXT://172.17.0.1:9092 (docker地址)

docker run  -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.17.0.3:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.9.110:9092 -e KAFKA_LISTENERS=PLAINTEXT://172.17.0.1:9092 -t wurstmeister/kafka

#rabbitmq

docker pull rabbitmq:management
docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

命令中的【RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin】是web管理平台的用户名和密码

【 -p 15672:15672】 是控制平台docker映射到系统的对应端口

【 -p 5672:5672】 是应用程序的访问端口

mysql

docker run -p 3306:3306 --name=mysql \
-v /docker/mysql/conf/:/etc/mysql/ \
-v /docker/mysql/data:/var/lib/mysql \
-v  /docker/mysql/mysql-files/:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456\
-d --privileged=true --restart=unless-stopped mysql:8.0.20
iptables -I INPUT -ptcp --dport 3306 -j ACCEPT

mysql -u root -p

ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’ ;

docker start mysql

rabbitmq

docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq rabbitmq
docker exec -it 容器id /bin/bash
rabbitmq-plugins enable rabbitmq_management

rocketMq

创建目录

mkdir -p /docker/rmqserver01/logs
mkdir -p /docker/rmqserver01/store
mkdir -p /docker/rmqbroker01/logs
mkdir -p /docker/rmqbroker01/store
mkdir -p /docker/rmqbroker01/conf
vim /docker/rmqbroker01/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = linuxIP地址

映射本地目录logs权限一定要设置为 777 权限,否则启动不成功
docker pull foxiswho/rocketmq:server
docker pull foxiswho/rocketmq:broker
docker run -d -v /docker/rmqserver01/logs:/home/rocketmq/logs --name rmqnamesrv -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 9876:9876 foxiswho/rocketmq:4.8.0 sh mqnamesrv
docker run -d  -v /docker/rmqbroker01/logs:/home/rocketmq/logs -v /docker/rmqbroker01/store:/home/rocketmq/store -v /docker/rmqbroker01/conf:/home/rocketmq/conf --name rmqbroker -e "NAMESRV_ADDR=rmqnamesrv:9876" -e "JAVA_OPT_EXT=-Xms512M -Xmx512M -Xmn128m" -p 10911:10911 -p 10912:10912 -p 10909:10909 foxiswho/rocketmq:4.8.0 sh mqbroker -c /home/rocketmq/conf/broker.conf
docker run --name rmqconsole --link rmqnamesrv:namesrv -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8180:8080 -t styletang/rocketmq-console-ng

redis

mkdir /docker/redis/config
mkdir /docker/redis/data

docker pull redis

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /docker/redis/config/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass redis123123


redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录

–appendonly yes 开启redis 持久化

–requirepass 000415 设置密码

protected-mode no

port 6379

tcp-backlog 511

requirepass redis123123

timeout 0

tcp-keepalive 300

daemonize no

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 30

always-show-logo yes

save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir ./

replica-serve-stale-data yes

replica-read-only yes

repl-diskless-sync no

repl-disable-tcp-nodelay no

replica-priority 100

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no

appendonly yes

appendfilename "appendonly.aof"

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

aof-use-rdb-preamble yes

lua-time-limit 5000

slowlog-max-len 128

notify-keyspace-events ""

hash-max-ziplist-entries 512
hash-max-ziplist-value 64

list-max-ziplist-size -2

list-compress-depth 0

set-max-intset-entries 512

zset-max-ziplist-entries 128
zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

stream-node-max-bytes 4096
stream-node-max-entries 100

activerehashing yes

hz 10

dynamic-hz yes

aof-rewrite-incremental-fsync yes

rdb-save-incremental-fsync yes


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值