# docker-compose **Repository Path**: OpenCirrus/docker-compose ## Basic Information - **Project Name**: docker-compose - **Description**: 使用docker-compose部署中间件 - **Primary Language**: Shell - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2022-08-26 - **Last Updated**: 2023-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: 容器 ## README ## docker安装中间件: #### 1、docker环境搭建 * 先检查服务器Centons的版本,必须在6.5以上,使用lsb_release -a命令查看CentOS版本 * 使用yum -y install docker命令安装docker。-y表示不询问安装,直到安装成功 * 启动docker(并设置开机自启),启动docker命令:systemctl start docker;设置开机启动docker命令:systemctl enable docker * 使用systemctl status docker命令查看docker服务状态。提示 active (running),说明docker安装成功 #### 2、docker-compose环境搭建 * 使用命令安装docker-compose:curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose * 使用命令给docker-compose执行权限:sudo chmod +x /usr/local/bin/docker-compose * 使用docker-compose version命令查看docker-compose版本 #### 3、docker-compose部署haproxy * 8888端口是haproxy监控,整个服务启动之后,就可以通过http://ip:8888/haproxy查单haproxy * 配置http端口(默认80)和https(默认443),https需要配置证书。 * 如果在docker-compose.yml里面配置443直接转443,在启动时会报错:cannot bind socker(Permission denied) for [0.0.0.0:443] #### 4、docker-compose部署jenkins #### 5、docker-compose部署kafka * kafka3.0【准确的说2.8之后的版本就可以不依赖zookeeper】之前的版本需要依赖zookeeper,部署时需要同时部署zookeeper+kafka * kafka3.0中已经将zookeeper去掉,使用kraft机制实现controller主控制器的选举,不过目前真正独立使用的非常少 * zk-single-kafka-single.yml 部署的是单个zookeeper+单个kafka * zk-single-kafka-multiple.yml 部署的是单个zookeeper+3个kafka集群,kafka-manager用于web的管理,安全起见,最好设置登录的账号密码 * zk-multiple-kafka-multiple.yml 部署的是3个zookeeper集群+3个kafka集群,KAFKA_KRAFT_CLUSTER_ID三个节点一直,可随机生成一串 ##### 5.1 如何验证zookeeper * 进入三个zk容器,docker exec -it zk1 bash * 使用 bin/zkServer.sh status 命令查询状态,mode 为leader或follower正常 #### 6、docker-compose部署mysql * docker-compose修改mysql密码,由于初始化过docker镜像,就算down了再vi改密码然后up改的密码也无法生效,你需要把docker-compose up起来,在进入到容器中修改密码 * 进入容器:docker exec -it mysql /bin/bash * 修改密码:update mysql.user set authentication_string=password('newpassword') where user='root'; * mysql 4.6版本以上的mysql服务器password改为authentication_string;我使用的mysql镜像版本是5.7,所以用update mysql.user set password=password(‘newpassword’) where user='root',否则无法修改用户密码 * 最后重启mysql:docker restart mysql #### 7、docker-compose部署nginx #### 8、docker-compose部署oracle #### 9、docker-compose部署redis ##### 9.1 查看Redis节点信息 * docker ps #查看容器列表 * docker exec -it containerid /bin/bash #进入指定容器 * redis-cli -h 127.0.0.1 -p port #连接指定端口号的redis * auth password #redis连接密码,哨兵节点不需要这一步 * info replication /info sentinel #查看redis节点信息,info replication查看主从节点信息,info sentinel查看哨兵节点信息 ##### 9.2 清理数据 * 清除所有数据:flushall * 清除某特定db下的所有数据: 切换到指定db(0开始): select index 删除当前库的数据: flushdb #### 10、docker-compose部署portainer * public文件用于汉化 #### 11、docker-compose部署openvpn * 需要开放外网端口1194,用于客户端导入ovpn文件连接