1.下载zookeeper镜像
docker pull zookeeper
2.床架镜像文件夹
cd /data
mkdir zookeeper
3.启动服务
docker run -d -e TZ="Asia/Shanghai" -p 2181:2181 -v /data/zookeeper:/data --name zookeeper --restart always zookeeper
-e TZ="Asia/Shanghai" # 指定上海时区
-d # 表示在一直在后台运行容器
-p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;
--restart always #始终重新启动zookeeper
附:三个常用端口(可以修改)
1、2181
:对cline
端提供服务
2、3888
:选举leader
使用
3、2888
:集群内机器通讯使用(Leader监听此端口)
查看启动情况
docker ps
4.测试
因为刚才我们启动的那个 ZK 容器并没有绑定宿主机的端口, 因此我们不能直接访问它. 但是我们可以通过 Docker 的 link 机制来对这个 ZK 容器进行访问. 执行如下命令:
docker run -it --rm --link zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
1.前置条件:先按zookeeper
docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
2.正题:安装kafka
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.9.44.11:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.9.44.11:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
3.参数意义
-e KAFKA_BROKER_ID=0
在kafka集群中,每个kafka都有一个BROKER_ID
来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=10.9.44.11:2181/kafka
配置zookeeper
管理kafka
的路径10.9.44.11:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.9.44.11:9092
把kafka
的地址端口注册给zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
配置kafka的监听端口
-v /etc/localtime:/etc/localtime
容器时间同步虚拟机的时间
4.验证kafka是否可以使用
4.1 进入容器
docker exec -it kafka /bin/sh
4.2 进入路径
cd /opt/kafka_2.11-2.0.0/bin
4.3运行kafka生产者发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic sun
4.4 发送消息
{“datas”:[{“channel”:"",“metric”:“temperature”,“producer”:“ijinus”,“sn”:“IJA0101-00002245”,“time”:“1543207156000”,“value”:“80”}],“ver”:“1.0”}
docker安装redis与rabbitmq
1.安装docker 安装成功 后如果
docker pull redis:latest
报异常如下:
“no matching manifest for windows/amd64 10.0.17763 in the manifest list entries”
解决方案:
右击Docker实例
转到设置
守护进程
高级的
设置experimental
重新启动Docker
解决 好以后
下面展示一些 内联代码片
。
redis:
C:\Users\pactera-530>docker pull redis:latest
latest: Pulling from library/redis
69692152171a: Pull complete
a4a46f2fd7e0: Pull complete
bcdf6fddc3bd: Pull complete
2902e41faefa: Pull complete
df3e1d63cdb1: Pull complete
fa57f005a60d: Pull complete
Digest: sha256:7e2c6181ad5c425443b56c7c73a9cd6df24a122345847d1ea9bb86a5afc76325
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
C:\Users\pactera-530>docker run -itd --name redis-test -p 6379:6379 redis
4606531f336da26dffae2aedba31cd5f8ed7f20769c5edf3c507f6606c51ba16
rabbitmq:
C:\Users\pactera-530>docker pull pdffiller/rabbitmq
Using default tag: latest
latest: Pulling from pdffiller/rabbitmq
627beaf3eaaf: Pull complete
079ada2a602c: Pull complete
c8b76ba05073: Pull complete
3ca62166aad9: Pull complete
010d9b0166c6: Pull complete
a2491e862df7: Pull complete
f98ce04c2bc0: Pull complete
eb354d1958ec: Pull complete
fab9b96578e0: Pull complete
4597af31939f: Pull complete
e55e9df39b23: Pull complete
d6db643f9ed4: Pull complete
Digest: sha256:4a53f34a9bbc6ae96716ce56b4a9a818d0f273faecf1faef7059940665d2d117
Status: Downloaded newer image for pdffiller/rabbitmq:latest
docker.io/pdffiller/rabbitmq:latest
C:\Users\pactera-530>docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq pdffiller/rabbitmq
07da1f3365b9b3bbdd4d08887b67b5a1f015553df0db2bcfb5bb0df46c6c3b25
******记录一个问题,docker pull pdffiller/rabbitmq
虽然拉取和启动成功,但是不能使用
请使用下面新的拉取mq方式:
C:\Users\pactera-530>docker pull rabbitmq:management
management: Pulling from library/rabbitmq
345e3491a907: Pull complete
57671312ef6f: Pull complete
5e9250ddb7d0: Pull complete
87dda86b6fa0: Pull complete
848ffb5f028a: Pull complete
90a071418b65: Pull complete
31050a7ab7e5: Pull complete
5e7c9bebd0c1: Pull complete
19288f167abf: Pull complete
52d4a23cf7cc: Pull complete
101d5452a90a: Pull complete
03042168919f: Pull complete
eeffdb7bcae0: Pull complete
Digest: sha256:09f73d00fc0d9eeb05d8dba8ab6aa5d0265af4d537c71f75229204bca4304dc7
Status: Downloaded newer image for rabbitmq:management
docker.io/library/rabbitmq:management
C:\Users\pactera-530>docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
–拉取镜像
docker pull rabbitmq:management
拉取成成之后,输入:docker images
查看拉取镜像,如下图所示表示成功
docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management
打开浏览器输入:http://localhost:15672/
,如下图所示,表示成功,可以使用默认的账户登录,用户名和密码都guest
docker ps -a 查看所有容器 里面有一个 【CONTAINER ID】
dokcer start 【CONTAINER ID】 启动
Docker 与其 redis rabbitmq 的快速安装与配置
Docker
Docker 安装
下载并安装-自动化
curl -sSL https://get.daocloud.io/docker | sh
配置加速镜像,这里是阿里云的配置,点击获取
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://$(你自己的id).mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker 安装 Redis
1、docker 获取 Redis
docker pull redis:5.0.10
2、修改 Redis 默认配置文件
记得将配置文件的 requirepass
改成自己的密码
bind 0.0.0.0
protected-mode yes
requirepass $(your password)
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile ""
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
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
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
3、创建 Redis 挂载目录
mkdir -p /software/redis/data /software/redis/conf
并将配置文件放入到 conf
文件夹中去
4、启动 Redis
docker run -d --name redis -p 6379:6379 -v /software/redis/conf/redis.conf:/redis.conf -v /software/redis/data:/data redis:5.0.10 redis-server /redis.conf --appendonly yes
-d 后台启动
-- name 对这个容器命名
-p 端口映射
-v 挂载目录,前面是本机目录,中间以 :隔开,后面是 docker 的目录
--appendonly yes 启动容器后开启 appendonly 配置
5、修改防火墙
这里是 Centos7
# 查看防火墙开放端口
firewall-cmd --zone=public --list-ports
# 添加端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重新加载配置文件
firewall-cmd --reload
6、验证 redis
docker exec -it redis /bin/bash
redis-cli
auth $(你的密码)
set key value
远程连接 redis,自行验证吧
Docker 安装 RabbitMQ
1、docker 获取 rabbitmq
docker search rabbitmq
docker pull rabbitmq
2、启动 rabbitmq
docker run -d --hostname rabbitmq --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
3、安装插件
docker exec -it rabbit /bin/bash
rabbitmq-plugins enable rabbitmq_management
ctrl + p + q 退出
4、验证
curl 127.0.0.1:15672
5、开放防火墙
firewall-cmd --zone=public --add-port=15672/tcp --add-port=5672/tcp --permanent
firewall-cmd --reload
6、windows
验证
服务器 host:15672
user:guest
password:guest
Docker笔记(五)Docker常用软件的安装(tomcat,mysql,redis,rabbitmq等)
安装tomcat
-
docker search tomcat
-
docker pull tomcat
-
docker images tomcat
查看是否有拉取到 -
使用
tomcat
镜像创建容器实例(也叫运行镜像)
4.1 docker run -d -p 8080:8080 --name tomcat tomcat
以上命令就创建了Tomcat容器,并且启动了Tomcat
但是我们浏览器访问报错
可能没有映射端口或者没有关闭防火墙,还有可能没有这个页面
我们进入启动的Tomcat里面
webapp
里面啥也没有,所以看不到页面,我们把
·把webapps.dist
目录换成webapps
以上就可以看到
安装mysql
docker search mysql
docker pull mysql
docker images mysql
查看是否有拉取到- 创建一个容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
进入到mysql
进入mysql的客户端
Windows里面也可以连到
问题
如果把容器删除了,这个数据库就没有了
解决
使用容器数据卷
docker run -d -p 3306:3306 --privileged=true -v /usr/local/dockermysql/log:/var/log/mysql -v /usr/local/dockermysql/data:/var/lib/mysql -v /usr/local/dockermysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.6
新建my.cnf
总结
一定要挂载数据卷
安装redis
-
docker search redis
-
docker pull redis
-
docker images redis
查看是否有拉取到
需要挂载数据卷 -
在CentOS宿主机下新建目录
/usr/local/docker_redis
里面放一个redis的配置文件
进入这个配置文件,进行修改里面的东西
4.1 允许redis
外地连接 必须
注释掉 # bind 127.0.0.1
4.2 daemonize no
将daemonize yes
注释起来或者 daemonize no
设置,因为该配置和docker run
中-d
参数冲突,会导致容器一直启动失败
4.3 开启redis数据持久化 appendonly yes
可选
- 创建redis的容器
用最新的redis的镜像,不要用6.0.8
版本
docker run -d -p 6379:6379 --privileged=true -v /usr/local/docker_redis/redis.conf:/etc/redis/redis.conf -v /usr/local/docker_redis/data:/data --name redis redis:latest redis-server /etc/redis/redis.conf --appendonly yes