docker 搭建 zookeeper 集群
安装:拉取指定版本镜像
docker pull zookeeper:3.4
创建运行在后台的zookeeper容器
docker run -d --name=zk-1 zookeeper:3.4
docker run -d --name=zk-2 zookeeper:3.4
docker run -d --name=zk-3 zookeeper:3.4
进入容器
docker exec -it zk-1 /bin/bash
退出容器
exit
查看zookeeper容器运行日志
docker logs -f zk-1
docker logs -f zk-2
docker logs -f zk-3
例子
[root@VM-8-9-centos ~]# docker run -d --name=zk-1 zookeeper:3.4
eb7a7e029aea2539845e6e091026bfe48a645e57d63154267d79e088549a0524
[root@VM-8-9-centos ~]# docker run -d --name=zk-2 zookeeper:3.4
2405fb92253f3822dc293b5bfd4510d7115836c47d884f42c761c601be326a54
[root@VM-8-9-centos ~]# docker run -d --name=zk-3 zookeeper:3.4
ea0949dfa1297fdc968cf218b388cb60b07c8147b6aed3c3e5f8ddfda00f31d9
[root@VM-8-9-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea0949dfa129 zookeeper:3.4 "/docker-entrypoint.…" 19 seconds ago Up 17 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-3
2405fb92253f zookeeper:3.4 "/docker-entrypoint.…" 27 seconds ago Up 26 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-2
eb7a7e029aea zookeeper:3.4 "/docker-entrypoint.…" 37 seconds ago Up 35 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-1
容器中没有vim等软件,需要先更新
apt update
apt install vim
apt install net-tools
zookeeper配置文件zoo.cfg
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=172.17.0.2:2888:3888
server.2=172.17.0.3:2888:3888
server.3=172.17.0.4:2888:3888
启动命令
bash bin/zkServer.sh start
bash bin/zkServer.sh start /conf/zoo.cfg
查看状态
bash bin/zkServer.sh status
关闭
bash bin/zkServer.sh stop
修改过后,bash bin/zkServer.sh运行不生效,docker restart id
例子
[root@VM-8-9-centos ~]# docker restart eb7a7e029aea
eb7a7e029aea
[root@VM-8-9-centos ~]# docker restart ea0949dfa129
ea0949dfa129
[root@VM-8-9-centos ~]# docker restart 2405fb92253f
2405fb92253f
[root@VM-8-9-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea0949dfa129 zookeeper:3.4 "/docker-entrypoint.…" About an hour ago Up 23 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-3
2405fb92253f zookeeper:3.4 "/docker-entrypoint.…" About an hour ago Up 11 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-2
eb7a7e029aea zookeeper:3.4 "/docker-entrypoint.…" About an hour ago Up 39 seconds 2181/tcp, 2888/tcp, 3888/tcp zk-1
[root@VM-8-9-centos ~]# docker exec -it zk-1 /bin/bash
root@eb7a7e029aea:/zookeeper-3.4.14# bash bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower
root@eb7a7e029aea:/zookeeper-3.4.14# exit
exit
[root@VM-8-9-centos ~]# docker exec -it zk-2 /bin/bash
root@2405fb92253f:/zookeeper-3.4.14# bash bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: follower
root@2405fb92253f:/zookeeper-3.4.14# exit
exit
[root@VM-8-9-centos ~]# docker exec -it zk-3 /bin/bash
root@ea0949dfa129:/zookeeper-3.4.14# bash bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Mode: leader
docker安装mysql
docker pull mysql:5
docker run -itd --name mysql-5 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5
docker exec -it mysql-5 /bin/bash
mysql -u root -p
172.17.0.5
vim /etc/mysql/my.cnf
内存优化,降低内存占用
[client]
port = 3306
default-character-set = utf8
[mysqld]
port = 3306
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 32M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 512K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
wait_timeout = 10
interactive_timeout = 10
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 64M
innodb_log_file_size = 2G
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
default-character-set = utf8
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
docker 安装java
docker pull java:8
docker run -itd --name jdk-8 java:8
docker 部署springboot
app_dockerfile
FROM java:8
MAINTAINER kongdechang <kongdechang@kongjs.com>
VOLUME /tmp
ADD ./app.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]
docker build -f ./app_dockerfile -t webapp .
docker run -d --name=web -p 8080:8080 webapp
docker logs -f web
# 制作 生产者镜像
docker build -f ./provider_dockerfile -t provider .
docker run -d --name=pro provider
# 制作 消费者镜像
docker build -f ./consumer_dockerfile -t consumer .
docker run -d --name=con -p 8888:8888 consumer
docker 安装 rocketmq
没有官方镜像,查询其他的
docker search rocketmq
阿里的镜像
docker pull xlxwhy/rocketmq
docker run -d --name rkmq-1 -p 9876:9876 -p 10909-10911:10909-10911 xlxwhy/rocketmq
docker exec -it rkmq-1 /bin/bash
vi deploy/app/broker.p
#容器ip
namesrvAddr=172.17.0.7:9876
#服务器ip
brokerIP1=42.193.117.23
42.193.117.23:9876