系统要升级到Windows Server 2022,原来的Docker ToolBox要换成Docker Desktop了,下面一起来踩坑。
一、下载Docker Desktop安装
https://www.docker.com/products/docker-desktop/
安装过程就不详细了。
二、升级为WSL 2
安装后启动可能会报WSL 2 installation is incomplete

在这里插入图片描述
按照提示上的连接点进去,下载WSL2 Update安装后重启Docker Desktop即可在这里插入图片描述
三、在WSL 2下使用Docker
很多教程要装什么HyperV,其实不用,这个WSL 2就是代替原来虚拟机的,是一个正宗的Linux Container,用HyperV的叫Windows Contariner,这个可以在Docker Desktop右下角图标右击的时候切换,但我们不要切换,保持在Linux Container即WSL2下使用。
直接win + R 输出CMD打开控制台,输入docker ps查看我们的docker是否正常运行。

四、在Docker里安装应用
这里直接使用docker compose,建一个文件docker-compose.yml

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    restart: always
  kafka:
    image: wurstmeister/kafka:latest
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      #KAFKA_BROKER_ID: 0
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.32:9092

    #restart: always
  redis:
    image: redis
    container_name: redis
    ports:
      - "6379:6379"
    restart: always

要注意的是以下两个参数:

KAFKA_LISTENERS:为本地监听端口,这里遇到一个坑,原来是填PLAINTEXT://localhost:9092的,但最后Kafka老是报如下错误:

connection to node 1001 could not be established. broker may not be available

后来发现localhost不一定是指本地,所以要把它置空让Kafka自己获取即可解决。

KAFKA_ADVERTISED_LISTENERS:是用于consumer和producer的远程端口,该连接地址和端口,要与consumer和producer设置的一致。

cd切换到该yml目录下,然后打命令:
docker-compose -d up,稍等一会即会自动下载images并组成container运行。然后在Docker desktop里就能看到了。
在这里插入图片描述
如果要进行该入容器内部,可以使用命令:

docker exec -it kafka /bin/bash

其中kafka是容器名称。
进入容器后,由于docker-desktop里的linux是精简版,有些命令不存在,因此需要使用命令更新一下

apt-get update 

然后一些工具命令也无法使用时,例如

docker bash: vim: command not found

需要单独使用以下命令下载安装即可。

apt-get install vim

参考:
https://docs.docker.com/desktop/
https://blog.csdn.net/weixin_42222436/article/details/125945225
https://blog.csdn.net/qq_46028126/article/details/126310226
https://blog.csdn.net/he3more/article/details/104696081

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐