Win10 安装 Docker、Zookeeper、Kafka 测试 生产者 消费者(docker-compose与Dockerfile)

2 篇文章 0 订阅
1 篇文章 0 订阅

Win10安装Docker

目前Docker只提供了win10专业版64位的安装版本

安装前请确认你的电脑打开了cpu虚拟化
快速查看方法P:Ctrl+Alt+Del选择任务管理器——性能——cpu——查看最下面的信息——虚拟化是否开启

打开win系统的控制面板,找不到直接在小娜那里搜索控制面板
选择程序——选择打开或关闭windows服务
打开图片中的服务
Hyper-V
重启电脑

百度Docker for windows 下载并安装

Docker设置

右键Docker系统图标——右下角系统栏选择Setting
选择daomen——打开Advanced——修改为下方内容

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [],
  "debug": true,
  "experimental": false
}

选择Apply——等待重启

使用Docker

win+r后输入cmd打开控制台
Docker的基本命令

查找相关镜像
docker search zookeeper    //查找zookeeper相关镜像

docker pull zookeeper  拉去默认官方最新镜像

创建zookeeper容器并启动

docker run --name zookeeper --restart always -d -p 2181:2181 zookeeper
--name    启动容器名称为 zookeeper
--restart always  docker 重启时,zookeeper容器 会自动重启
--d       后台线程启动
--p   左边为容器外宿主机端口右边为容器内部zookeeper启动端口

第一个2181为宿主主机的提供的映射接口,由于我的电脑不开放6000以内的接口,我只好把
==2181:2181改成了6688:2121==

搜索kafka的镜像
docker search kafka

执行 docker pull wurstmeister/kafka

启动kafka

docker run  -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e
KAFKA_ZOOKEEPER_CONNECT=192.168.70.87:6688 -e
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.70.87:9092 -e
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka

其中的两个ip和端口都是宿主主机对docker中的zookeeper开放的映射端口

docker ps  查看已经建立的镜像

docker logs -f 容器id           查看容器日志

docker exec -it kafka /bin/bash   进入kafka 容器内部

切到kafka的bin目录下

cd /opt/kafka_2.12-2.4.0/bin/

创建一个topic名命为my_log

kafka-topics.sh --create --zookeeper 192.168.70.87:6688 --replication-factor 1 --partitions 1 --topic my_log

查看指定zookeeper中的所有topic
 kafka-topics.sh --list --zookeeper 192.168.70.87:6688

启动一个生产者 绑定刚才创建的主体my_log

kafka-console-producer.sh --broker-list localhost:9092 --topic my_log

随意写点东西,Ctrl+C退出

启动消费者脚本,订阅 mykafka 主题
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --frombeginning
注解:
--from-beginning  从头开始消费


注意,如果你在kafka中没有切入bin目录,那么创建topic命令和创建生产者与消费者命令时要带上bin/

Docker-compose 扩展插件

docker-compose可以说是docker的一个扩展插件,有了它*我们——使用一个配置即可实现所有容器的管理
下载win平台docker-compose

点击releases下拉选择和你系统对应的版本
因为我是win10专业版64位所以我选择了docker-compose-Windows-x86_64.exe

双击执行你的插件进行安装

检查是否安装成功
# docker-compose -v

使用docker-compose的小栗子

创建一个docker-compose.yml文件

version: '2'
services:
    zoo1:
        image: zookeeper
        restart: always
        container_name: zoo1
        ports:
            - "2181:2181"
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo2:
        image: zookeeper
        restart: always
        container_name: zoo2
        ports:
            - "2182:2181"
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo3:
        image: zookeeper
        restart: always
        container_name: zoo3
        ports:
            - "2183:2181"
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

上面的端口号如果遇到不给开放请使用6000以上的端口号来对应docker中的端口——如把2183:2183改成6693:2183

version:’3’ :表示compose对docker版本的支持,这里是compose版本,并非是docker版本。

services: 表示一个该配置文件的所有容器实例,支持配置多个容器实例。

restart: always:表示该容器实例是随着机器启动而启动。

ports:表示容器端口映射到宿主机端口。

container_name: 表示容器的一个别名。

environment:表示容器环境的设置。

其他命令:
volumes:表示dockers容器的数据卷,将容器实例的目录映射到宿主机上盘符目录。
如:我们在docker配置tomcate时:
volumes:
- d://docker/tomcat/webapps:/usr/local/tomcat/webapps
- d://docker/tomcat/logs:/usr/local/tomcat/logs

在当前路径下使用——shift+鼠标右键选择运行powshell或者命令行窗口

运行 docker-compose up -d
运行刚才的配置文件

docker-compose命令

Up :启动

Down:停止

-d:后台运行

一个docker-compose.yml整合tomcat与mysql.5.7

创建docker-compose.yml

version: '3'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - d://docker/tomcat/webapps:/usr/local/tomcat/webapps
      - d://docker/tomcat/logs:/usr/local/tomcat/logs
    environment:
      TZ: Asia/Shanghai
   
  mysql:
    restart: always
    image: mysql:5.7.24
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - mysql-data:/var/lib/mysql
 
volumes:
  mysql-data:

version:’3’ :表示compose对docker版本的支持,这里是compose版本,并非是docker版本。

services: 表示一个该配置文件的所有容器实例,支持配置多个容器实例。

tomcat:表示是一个多个容器中的其中一个

restart: always:表示该容器实例是随着机器启动而启动。

image: tomcat:表示本容器使用的镜像是tomcat,如需要指定版本号则 image: tomcat:8.0。

container_name: tomcat:表示容器的一个别名。

ports:表示容器端口映射到宿主机端口。

volumes:表示dockers容器的数据卷,将容器实例的目录映射到宿主机上盘符目录。

environment:表示容器环境的设置,我这里配置的是tomcat容器的时区时间为亚洲/上海

还记得我们的配置文件是怎么写的吗?webapps目录我们是从容器映射到宿主机磁盘目录的,所以我会在这个目录下创建一个test工程并写一个index.html文件,以供我们进行测试。
html
通过浏览器访问:localhost:8080/test

欧克!!!

Docker-compose 和 Dockerfile

docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。

dockerfile的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image ,在 docker-compose 里也可以用来实时 build
docker-compose.yml - 为 docker-compose 准备的脚本,可以同时管理多个 container ,包括他们之间的关系、用官方 image 还是自己 build 、各种网络端口定义、储存空间定义等

在win环境创建DockerFile

使用虚拟机中的vim命令编写dockerfile不太方便,在windows中可以使用记事本编辑。

  1. 在终端(CMD)中输入 cd Desktop 转到桌面(也可以直接在桌面用shift+鼠标右键选择打开powershell)

  2. 输入 mkdir dockerTest 在桌面上创建一个dockerTest文件夹

  3. 输入 cd dockerTest 进入dockerTest文件夹

  4. 输入 touch Dockerfile 创建一个Docker文件在当前目录。注意这里的Dockerfile的首字母是大写的(因为Linux文件名是大小写敏感的)windows平台使用echo > 来创建文件

  5. 输入 notepad Dockerfile& 使用windows的记事本打开Dockerfile文件(注意最后面有一个 ‘&’)经过验证,notepad命令在win10上也是不能使用的,但是大家可以手动用notepad++来打开编辑这个文件,然后再在命令窗口里使用docker命令来执行

echo>
点击查看Dockerfile的一些规则和命令

By Cool.R

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值