Ubuntu利用docker搭建Java相关环境记录(二)

Ubuntu利用docker搭建Java相关环境记录(二)

接上篇:Ubuntu利用docker搭建Java相关环境记录(一)

启动Docker

1. 查看Docker容器

已启动的容器
bash 复制代码
docker ps
所有容器
bash 复制代码
docker ps -a

本人很懒并不想一直敲命令操作,所以先拉取Docker可视化面板Dpanel的镜像

2. 拉取Dpanel镜像

bash 复制代码
docker pull crpi-5qc4odiityxeoecl.cn-hangzhou.personal.cr.aliyuncs.com/aliyun-namespace-lym/dpanel:latest

注意这里用的是我的阿里云私有镜像仓库(之前推送了这个镜像到仓库)
`强力推荐这个工具,非常好用!!!

3. 启动Dpanel

bash 复制代码
docker run -d --name dpanel --restart=always \
	 -p 80:80 -p 443:443 -p 8807:8080 \
	 -v /var/run/docker.sock:/var/run/docker.sock \
	 -v /data/dpanel:/dpanel -e APP_NAME=DPANEL_HOME crpi-5qc4odiityxeoecl.cn-hangzhou.personal.cr.aliyuncs.com/aliyun-namespace-lym/dpanel:latest

4. 查看是否启动成功

bash 复制代码
docker ps

显示这些信息表示启动成功

5. 登录面板

浏览器输入http://you_server_ip:8807/即可看到如下页面。(首次登录需要设置账号密码)

登录后即可看到如下页面,后续拉取其他镜像的操作可以在页面进行

Dpanel 拉取镜像

Redis

compose菜单中创建任务,在右侧yml文件输入框中输入如下内容:

yaml 复制代码
version: '3.8'

services:
  redis:
    image: redis:latest
    container_name: redis-server
    ports:
      - "6379:6379"
    volumes:
      - ./config/redis.conf:/usr/local/etc/redis/redis.conf
      - /data/redis:/data
    command: ["redis-server", "/usr/local/etc/redis/redis.conf"]
    restart: unless-stopped

提交

提交后点击启动按钮(拉取成功后按钮变为更新)即可拉取镜像,拉取成功后,会自动创建容器并启动。

后续其他镜像也是一样的操作方式

Kafka

因为kafka依赖于zookeeper所以两个镜像配置写在一起:

yaml 复制代码
version: '3.8'

services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper-server
    ports:
      - "2181:2181"
    volumes:
      - /data/zookeeper:/var/lib/zookeeper
    restart: unless-stopped

  kafka:
    image: wurstmeister/kafka
    container_name: kafka-server
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
      - KAFKA_LISTENERS=PLAINTEXT://:9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper-server:2181
      - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
    volumes:
      - /data/kafka:/kafka
    depends_on:
      - zookeeper
    restart: unless-stopped
注意 拉取kafka时遇到的问题
zookeeper拉取后启动成功但是kafka启动不成功,一直显示重启中

使用 docker log 容器id 查看日志报错:

bash 复制代码
ERROR: Missing environment variable KAFKA_LISTENERS. Must be specified when using KAFKA_ADVERTISED_LISTENERS

原因:原因是没有设置 KAFKA_LISTENERS 环境变量。

解决方式: 在 Kafkadocker-compose.yml 文件中,添加 KAFKA_LISTENERS 环境变量,然后重启。

bash 复制代码
 - KAFKA_LISTENERS=PLAINTEXT://:9092
验证kafka是否安装成功
  1. 进入kafka容器
bash 复制代码
docker exec -it <kafka_container_name_or_id> /bin/bash
  1. 创建 topic
bash 复制代码
kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
  1. 验证 topic 是否创建成功
bash 复制代码
kafka-topics.sh --list --bootstrap-server localhost:9092
  • 如果 test-topic 出现在列表中,说明 topic 创建成功。
  1. 使用 Kafka 控制台生产者发送消息
bash 复制代码
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic

输入消息,例如:

Hello, Kafka! This is a test message.

  1. 在另一个终端窗口中进入 Kafka 容器
bash 复制代码
docker exec -it <kafka_container_name_or_id> /bin/bash
  1. 使用 Kafka 控制台消费者接收消息
bash 复制代码
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
  1. 查看消息

mysql 8.0

bash 复制代码
version: '3.8'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql-server
    ports:
      - "3306:3306"
      - "33060:33060"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=ddb_dev
    volumes:
      - /data/mysql:/var/lib/mysql
    restart: unless-stopped

rabbitMQ

bash 复制代码
version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3-management
    container_name: rabbitmq-server
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - /data/rabbitmq:/var/lib/rabbitmq
    restart: unless-stopped

elasticsearch 7.14.0

bash 复制代码
version: '3.8'
services:
  elasticsearch:
    image: elasticsearch:7.14.0
    container_name: elasticsearch-server
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.type=single-node
      - cluster.name=es-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/elasticsearch:/usr/share/elasticsearch/data
    restart: unless-stopped
相关推荐
大厂码农老A10 分钟前
P10老板一句‘搞不定就P0’,15分钟我用Arthas捞回1000万资损
java·前端·后端
nlog3n19 分钟前
分布式任务事务框架设计与实现方案
java·分布式
熙客21 分钟前
分布式调度问题:定时任务
java·分布式·spring cloud
星海穿梭者29 分钟前
SQL SERVER 查看锁表
java·服务器·前端
muxin-始终如一1 小时前
Spring框架面试问题及详细回答
java·spring·面试
Fency咖啡1 小时前
Spring Boot 3.x 开发 Starter 快速上手体验,通过实践理解自动装配原理
java·spring boot·后端
悟能不能悟1 小时前
什么是反应式编程
java
桥边驿语人1 小时前
Docker 容器无法访问外网的问题排查与解决指南
运维·docker·容器
南方者1 小时前
【JAVA】【BUG】Java 开发中常见问题的具体示例,结合代码片段说明问题场景及原因
java·后端·debug
没有bug.的程序员1 小时前
MySQL 配置调优参数:从基础到生产级优化指南
java·数据库·mysql·优化·mysql配置调优