docker相关总结
Docker 的相关使用记录
一.安装docker
linux环境使用yum命令安装docker
第一步:确保自己的虚拟机没有安装过docker,如果安装过的需要将原先的docker进行卸载,命令如下:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
第二步:确保自己的虚拟机的内核版本在3.10及以上,这个地方用下面的命令:
uname
第三步:确保自己的linux上是否有yum程序,没有的话的可以参考如下网址安装方法:
http://c.biancheng.net/view/824.html
第四步:安装docker软件包
命令如下:
yum install -y yum-utils device-mapper-persistent-data lvm2
然后使用阿里云的下载地址,阿里云的速度比较快.
然后使用阿里云的下载地址,阿里云的速度比较快.
阿里云地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第五步:安装docker:
yum install docker-ce
第六步:测试
docker version
二.docker安装zookeeper
拉取Zookeeper镜像到本地【默认拉取最新版本】
docker pull zookeeper
查看拉取下来的镜像
docker images
运行镜像,产生容器
简单解释一下参数:--name是给启动的容易取的名字,以后启动容器可以使用这个名字来启动
-p 是映射容器端口与本地主机的端口
-- restart always 表示容器如果关闭退出就是重启
-d 表示容器以后台守护进程启动
末尾的zookeeper,表示是刚刚拉取下来的镜像,也可以使用镜像ID【参照第二条命令】
镜像ID可以在使用docker images查看镜像时会列出,参考上一个图
docker run --name myzookeeper -p 2181:2181 --restart always -d zookeeper
docker run --name myzookeeper -p 2181:2181 --restart always -d 06b178591ab3
查看正在运行的容器
docker ps
三.docker 安装kafka
- 启动zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
- 启动kafka容器
docker run -d --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
这里面主要设置了4个参数
这里面主要设置了4个参数
KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
中间两个参数的192.168.204.128改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
- 测试kafka
进入kafka容器的命令行
docker exec -ti kafka /bin/bash
进入kafka所在目录
cd opt/kafka_2.12-1.1.0/
后面不再赘述,可参考前一篇文章https://blog.csdn.net/lblblblblzdx/article/details/80548157
后面不再赘述,可参考前一篇文章https://blog.csdn.net/lblblblblzdx/article/details/80548157
- 集群搭建
使用docker命令可快速在同一台机器搭建多个kafka,只需要改变brokerId和端口
docker run -d --name kafka1 \
-p 9093:9093 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.204.128:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.204.128:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 -t wurstmeister/kafka
- 创建Replication为2,Partition为2的topic
在kafka容器中的opt/kafka_2.12-1.1.0/目录下输入
bin/kafka-topics.sh --create --zookeeper 192.168.204.128:2181 --replication-factor 2 --partitions 2 --topic partopic
- 查看topic的状态
在kafka容器中的opt/kafka_2.12-1.1.0/目录下输入
bin/kafka-topics.sh --describe --zookeeper 192.168.204.128:2181 --topic partopic
输出结果:
Topic:partopic PartitionCount:2 ReplicationFactor:2 Configs:
Topic: partopic Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0,1
Topic: partopic Partition: 1 Leader: 0 Replicas: 1,0 Isr: 0,1
显示每个分区的Leader机器为broker0,在broker0和1上具有备份,Isr代表存活的备份机器中存活的。
当停掉kafka1后,
显示每个分区的Leader机器为broker0,在broker0和1上具有备份,Isr代表存活的备份机器中存活的。
当停掉kafka1后,
docker stop kafka1
再查看topic状态,输出结果:
再查看topic状态,输出结果:
Topic:partopic PartitionCount:2 ReplicationFactor:2 Configs:
Topic: partopic Partition: 0 Leader: 0 Replicas: 0,1 Isr: 0
Topic: partopic Partition: 1 Leader: 0 Replicas: 1,0 Isr: 0
四.docker安装fastdfs
4.1 拉取镜像
docker pull morunchang/fastdfs
如果网速下载慢,可以参考资料文件夹中给大家导出的镜像包上传到 Linux服务器上,通过
docker load -i my_fdfs.tar
加载镜像。使用 docker images查看是否成功
4.2 运行tracker
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
4.3 运行storage
docker run -d --name storage --net=host -e TRACKER_IP=<your tracker server address>:22122 -e GROUP_NAME=<group name> morunchang/fastdfs sh storage.sh
例子:
docker run -d --name storage --net=host -e TRACKER_IP=192.168.200.130:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh
- 使用的网络模式是–net=host,
替换为你机器的Ip即可 是组名,即storage的组 - 如果想要增加新的storage服务器,再次运行该命令,注意更换 新组名
4.4 修改nginx的配置
进入storage的容器内部,修改nginx.conf
# 进入到storage容器内部
docker exec -it storage /bin/bash
进入到容器内部后
#1 通过命令来查询Nginx的安装位置
root@iZ8vb6w2xyjemtqcxtmaj4Z:/# whereis nginx
nginx: /etc/nginx
#2 查看当前Nginx的进程
root@iZ8vb6w2xyjemtqcxtmaj4Z:/# ps aux | grep nginx
root 16 0.0 0.0 32480 1480 ? Ss 13:18 0:00 nginx: master process /etc/nginx/sbin/nginx
nobody 100 0.0 0.0 33036 2116 ? S 14:15 0:00 nginx: worker process
root 118 0.0 0.0 11272 728 pts/1 S+ 14:54 0:00 grep --color=auto nginx
添加以下内容
#3 修改Nginx的配置文件
vi /etc/nginx/conf/nginx.conf
#4 修改Nginx配置内容
server {
listen 80;
server_name localhost;
location ~ /M00 {
# storage 实际存储图片的位置
root /data/fast_data/data;
ngx_fastdfs_module;
}
}
#5 进入到Nginx sbin目录从新加载Nginx配置文件
cd /etc/nginx/sbin
# 重新加载配置文件
./nginx -s reload
修改后:
storage存储的位置/data/fast_data/data
4.5 设置开机启动容器
docker update --restart=always tracker
docker update --restart=always storage
五.docker安装MongoDB
5.1 拉取镜像
docker pull mongo
5.2 创建容器
docker run -di --name mongo-service -p 27017:27017 -v ~/data/mongodata:/data mongo
六.docker安装elasticsearch(简称es)
6.1 拉取镜像
docker pull elasticsearch:7.4.0
6.2 创建容器
docker run -id --name elasticsearch -d -p 9200:9200 -p 9300:9300 -v /usr/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" elasticsearch:7.4.0
6.3安装ik分词器
这里采用离线安装
下载分词器压缩包
下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip
将IK分词器上传到/tmp目录中(xftp)
将分词器安装进容器中
#将压缩包移动到容器中
docker cp /tmp/elasticsearch-analysis-ik-7.4.0.zip elasticsearch:/usr/share/elasticsearch/plugins
#进入容器
docker exec -it elasticsearch /bin/bash
#创建目录
mkdir /usr/share/elasticsearch/plugins/ik
#将文件压缩包移动到ik中
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.4.0.zip /usr/share/elasticsearch/plugins/ik
#进入目录
cd /usr/share/elasticsearch/plugins/ik
#解压
unzip elasticsearch-analysis-ik-7.4.0.zip
#删除压缩包
rm -rf elasticsearch-analysis-ik-7.4.0.zip
退出并重启镜像
这玩意装与不装都挺好,不装查到的东西也很精确够使,装上会查出一些没有用的!
七.docker安装kibana
拉取镜像
docker pull kibana:7.4.0
创建容器
docker run -d -p 5601:5601 --link elasticsearch -e "ELASTICSEARCH_URL=http://192.168.200.140:9200" kibana:7.4.0