Docker部署( redis/mysql/nacos/canal/neo4j/kafka)

  • Post author:
  • Post category:mysql




1. docker 安装

curl -sSL https://get.daocloud.io/docker | sh



2. 启动docker

sudo systemctl start docker



3. redis

docker  run --name redis -d  -p 6379:6379  -v /etc/redis/conf/redis.conf:/etc/redis/redis.conf -v /etc/redis/data:/data  redis  redis-server /etc/redis/redis.conf --appendonly yes 
docker exec -it redis /bin/bash 默认进入data文件夹
docker exec -it redis redis-cli
重启redis
docker restart redis

设置redis跟随docker启动
docker update redis --restart=always



4. mysql

docker run  --name mysql -d  -p 3306:3306  -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD= 密码  mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 



进入控制台

docker exec -it c6c8e8e7940f /bin/bash



登录

mysql -u root -p123456



查询用户

select host,user,plugin,authentication_string from mysql.user;



更新密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'



创建canal用户

CREATE USER canal IDENTIFIED BY 'canal';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;



5. canal



canal-admin

 docker pull canal/canal-admin



canal-server

 docker pull canal/canal-server


下载指定脚本组装docker命令来启动
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run_admin.sh
sudo sh run_admin.sh -e server.port=8089 \
        -e canal.adminUser=admin \
        -e canal.adminPasswd=canal@619 \
        -e spring.datasource.address=120.77.64.190:3306 \
        -e spring.datasource.database=erp-user \
        -e spring.datasource.username=root \
        -e spring.datasource.password=canal@619 


或者 直接docker 命令 启动
sudo docker run -it --name canal-admin \
    -e server.port=8089 \
    -e canal.adminUser=admin \
    -e canal.adminPasswd=canal@619 \
    -e spring.datasource.address=120.77.XX.XX:3306 \
    -e spring.datasource.database=db \
    -e spring.datasource.username=canal \
    -e spring.datasource.password=canal@619 \
    -h 120.77.64.190 \
    --net=host \
    -m 1024m \
    -d canal/canal-admin:v1.1.5


下载脚本 组装docker命令来启动
wget https://raw.githubusercontent.com/alibaba/canal/master/docker/run.sh 

sudo sh run.sh -e canal.admin.manager=127.0.0.1:8089 \
         -e canal.admin.port=11110 \
         -e canal.port=11121 \
         -e canal.metrics.pull.port=11122 \
         -e canal.admin.user=admin \
         -e canal.admin.passwd=6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9


或者直接docker命令启动
docker run -it --name=canal-server \
    -e canal.admin.manager=172.21.XX.XX:8089 \
    -e canal.admin.port=11110 \
    -e canal.port=11121 \
    -e canal.metrics.pull.port=11122 \
    -e canal.admin.user=admin \
    -e canal.admin.passwd=6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 \
    -h 172.21.137.55 \
    --net=host \
    -d canal/canal-server:v1.1.4



6. nacos

docker  run \
--name nacos -d \
-p 8848:8848 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /home/soft/nacos/logs/:/home/nacos/logs/ \
-v /home/soft/nacos/data/:/home/nacos/data/ \
-v /home/soft/nacos/conf/application.properties:/home/nacos/conf/application.properties \
nacos/nacos-server



7. neo4j

docker run -d --name container_name \  //-d表示容器后台运行 --name指定容器名字
-p 7474:7474 -p 7687:7687 \  //映射容器的端口号到宿主机的端口号
-v /home/neo4j/data:/data \  //把容器内的数据目录挂载到宿主机的对应目录下
-v /home/neo4j/logs:/logs \  //挂载日志目录
-v /home/neo4j/conf:/var/lib/neo4j/conf   //挂载配置目录
-v /home/neo4j/import:/var/lib/neo4j/import \  //挂载数据导入目录
--env NEO4J_AUTH=neo4j/password \  //设定数据库的名字的访问密码
neo4j //指定使用的镜像

docker run -d --name neo4j -p 7474:7474 -p 7687:7687 -v /home/neo4j/data:/data -v /home/neo4j/logs:/logs -v /home/neo4j/conf:/var/lib/neo4j/conf -v /home/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=none  neo4j



8. docker 部署服务



登录远程仓库
docker login 远程仓库地址


打包
docker build -t xxx:latest -f Dockfile .


标记本地镜像,将其归入某一仓库
docker tag imageID  远程仓库/yunhe/xxx:latest


推送到远程仓库
docker push 远程仓库/yunhe/xxx:latest



9.Docker安装Kafka

首先创建一个网络

app-tier:网络名称

–driver:网络类型为bridge

docker network create app-tier --driver bridge

1、安装zookeeper

Kafka依赖zookeeper所以先安装zookeeper

-p:设置映射端口(默认2181)

-d:后台启动

docker run -d --name zookeeper-server \
    --network app-tier \
    -e ALLOW_ANONYMOUS_LOGIN=yes \
    bitnami/zookeeper:latest

查看zookeeper容器日志(可省略)

docker logs -f zookeeper

2、安装Kafka

安装并运行Kafka, –name:容器名称

-p:设置映射端口(默认9092 )

-d:后台启动 ALLOW_PLAINTEXT_LISTENER任何人可以访问 KAFKA_CFG_ZOOKEEPER_CONNECT链接的zookeeper

KAFKA_ADVERTISED_HOST_NAME当前主机IP或地址(重点:如果是服务器部署则配服务器IP或域名否则客户端监听消息会报地址错误)

-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \

docker run -d --name kafka-server \
    --network app-tier \
    -p 9092:9092 \
    -e ALLOW_PLAINTEXT_LISTENER=yes \
    -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
    -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.101:9092 \
    bitnami/kafka:latest

查看kafka容器日志(可省略)

docker logs -f kafka

3、kafka-manager图形化管理工具(不好用)

kafka-manager 只是一个简单的页面,浏览kafka中的信息,没有实际操作功能。

-p:设置映射端口(默认9000) –name:容器名称

-ZK_HOSTS:zookeeper服务地址,多个可用逗号隔开

3、kafka-map图形化管理工具(好用)

图形化管理工具 访问地址:http://服务器IP:9001/ DEFAULT_USERNAME:默认账号admin

DEFAULT_PASSWORD:默认密码admin

Git

地址:https://github.com/dushixiang/kafka-map/blob/master/README-zh_CN.md

docker run -d --name kafka-map \
    --network app-tier \
    -p 9001:8080 \
    -v /opt/kafka-map/data:/usr/local/kafka-map/data \
    -e DEFAULT_USERNAME=admin \
    -e DEFAULT_PASSWORD=admin \
    --restart always dushixiang/kafka-map:latest



版权声明:本文为qq_32662595原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。