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

  1. 启动zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
  1. 启动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。

  1. 测试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

  1. 集群搭建

    使用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
  1. 创建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
  1. 查看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

测试:http://192.168.200.140:5601/

最新文章

  1. Mysql(windows)安装
  2. Git ——分布式版本控制系统
  3. window 10 用composer安装 基于 Laravel 5.3 的 Coaster CMS Curl错误77解决
  4. C#GDI+编程基础(二)
  5. scrollTo 和 scrollBy
  6. mysql 查看当前登陆用户匹配原则及权限user()与current_user()
  7. layer
  8. Reverse a Singly LinkedList
  9. 写给 iOS 开发者的 Hopper + lldb 简介
  10. Java的基本语法
  11. 如何优化cocos2d/x内存使用和程序大小的程序
  12. ckeditor上传图片的注意点
  13. 规范 : login 对象的account
  14. nginx1.14.0版本server、location、rewrite配置
  15. HTML5从入门到精通(明日科技) 中文pdf扫描版
  16. RHEL7基本命令
  17. 【转载三】Grafana系列教程–Grafana的配置及运行
  18. ubuntu下利用docker搭建gitloab手记
  19. aircrack-ng 工具集学习
  20. SpringCloud统一配置之使用配置

热门文章

  1. rust实现http时如何读取一个完整的request
  2. 四位一体水溶交融,Docker一拖三Tornado6.2 + Nginx + Supervisord非阻塞负载均衡容器式部署实践
  3. 最近公共祖先(LCA)学习笔记 | P3379 【模板】最近公共祖先(LCA)题解
  4. SDK和API的直接区别
  5. eclipse小技巧---快速复制全类名
  6. San(COCI2017.2)题解
  7. 【java】IDEA-jar包导出与导入
  8. 【AGC】使用云调试优惠扣费、华为设备上触发崩溃、无法下载华为应用市场问题小结
  9. 第九篇:vue条件语句
  10. omc.