使用Docker Desktop安装Java开发环境

由于Java开发需要用到的数据库,中间件等比较多,所以选择使用Docker来进行安装比较方便,云服务器的话由于内存和CPU的限制不一定可以安装这些开发环境,所以可以使用Docker Desktop在Windows系统上安装Java开发环境,既节省资源又非常方便快捷。
在这里插入图片描述
在这里插入图片描述

1.安装Docker Desktop

直接去官网下载windows版本的Docker Desktop安装包,然后直接安装Docker Desktop,安装完成之后打开Docker Desktop,最后打开PowerShell作为控制台来执行docker命令。将所有容器连接到同一个网络,方便使用容器名互相访问

2.安装MySQL

1.创建挂载目录
mkdir E:\development_sources\docker\mysql\log,E:\development_sources\docker\mysql\data,E:\development_sources\docker\mysql\conf,E:\development_sources\docker\mysql\mysql-files

2.执行命令安装MySQL
docker run -p 3306:3306 --restart=always --name mysql -v E:\development_sources\docker\mysql\log:/var/log/mysql -v E:\development_sources\docker\mysql\data:/var/lib/mysql -v E:\development_sources\docker\mysql\conf:/etc/mysql -v E:\development_sources\docker\mysql\mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.24

3.创建网络并连接容器
docker network create dev_net
docker network connect dev_net mysql

使用Navicat连接MySQL数据库,显示结果如下:在这里插入图片描述

3.安装Redis

1.创建挂载目录
mkdir E:\development_sources\docker\redis\data

2.执行命令安装Redis
docker run -p 6379:6379 --restart=always --name redis -v E:\development_sources\docker\redis\data:/data -d redis redis-server --appendonly yes --requirepass redis

3.连接容器
docker network connect dev_net redis

使用Another Redis Desktop Manager来连接redis,显示结果如下:
在这里插入图片描述

4.安装nginx

1.创建挂载目录
mkdir E:\development_sources\docker\nginx\html,E:\development_sources\docker\nginx\logs

2.执行命令安装Nginx
docker run -p 80:80 --restart=always --name nginx -v E:\development_sources\docker\nginx\html:/usr/share/nginx/html -v E:\development_sources\docker\nginx\logs:/var/log/nginx -d nginx

3.连接容器
docker network connect dev_net nginx

然后在E:\development_sources\docker\nginx\html中创建一个index.html文件,里面写hello world,可以在浏览器中通过nginx访问到
在这里插入图片描述

5.安装RabbitMQ

1.执行命令安装RabbitMQ
docker run -p 5672:5672 -p 15672:15672 --restart=always --name rabbitmq -d rabbitmq

2.进入容器并开启管理功能
docker exec -it rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management

3.连接容器
docker network connect dev_net rabbitmq

4.访问15672端口输入账号密码并登录:guest guest

在这里插入图片描述

6.安装Elasticsearch

1.创建挂载目录
mkdir E:\development_sources\docker\elasticsearch\plugins,E:\development_sources\docker\elasticsearch\data,E:\development_sources\docker\elasticsearch\config

2.在E:\development_sources\docker\elasticsearch\config目录下创建elasticsearch.yml,并写入以下内容
http.host: 0.0.0.0

3.执行命令安装Elasticsearch
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch --restart=always -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -v E:\development_sources\docker\elasticsearch\plugins:/usr/share/elasticsearch/plugins -v E:\development_sources\docker\elasticsearch\data:/usr/share/elasticsearch/data -v E:\development_sources\docker\elasticsearch\config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -d elasticsearch:7.17.5

4.进入容器内部并安装中文分词器
docker exec -it elasticsearch /bin/bash
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip

5.连接容器
docker network connect dev_net elasticsearch

6.重启容器
docker restart elasticsearch

然后在浏览器中访问localhost:9200,显示结果如下
在这里插入图片描述

7.安装Logstash

1.创建挂载目录
mkdir E:\development_sources\docker\logstash\pipeline,E:\development_sources\docker\logstash\config

2.在E:\development_sources\docker\logstash\pipeline目录下创建logstash.conf,并写入以下内容

#日志采集入口,项目的logback会和这个input交互
input {
   
tcp {
   
   #模式为 server
  mode => "server"
   #ip为logstash的地址
  host => "0.0.0.0"
   #监听的端口,以此端口获得日志数据
  port => 9413
   #数据格式为json
  codec => json_lines
}
}
#日志存储目标:es
output {
   
elasticsearch {
   
  hosts => "elasticsearch:9200"
  index => "springboot-logs-%{+YYYY.MM.dd}"
  codec => "json"
}
}

3.在E:\development_sources\docker\logstash\config目录下创建logstash.yml,并写入以下内容

api.http.host: 0.0.0.0
xpack.monitoring.elasticsearch.hosts: ["http://elasticsearch:9200"]

4.执行命令安装Logstash
docker run --name logstash --net dev_net -m 1000M --restart=always -p 9600:9600 -p 9413:9413 --privileged=true -e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" -v E:\development_sources\docker\logstash\pipeline\logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v E:\development_sources\docker\logstash\config\logstash.yml:/usr/share/logstash/config/logstash.yml -d logstash:7.17.5

5.进入容器内部
docker exec -it logstash /bin/bash

6.安装json_lines插件
logstash-plugin install --no-verify logstash-codec-json_lines

然后在浏览器中访问localhost:9600,显示结果如下
在这里插入图片描述

8.安装Kibana

1.执行命令安装Kibana
docker run --name kibana --net dev_net --restart=always -p 5601:5601 -e "elasticsearch.hosts=http://elasticsearch:9200" -d kibana:7.17.5

然后在浏览器中访问localhost:5601,显示结果如下
在这里插入图片描述

9.安装MongoDB

1.创建挂载目录
mkdir E:\development_sources\docker\mongo\db

2.执行命令安装MongoDB
docker run -p 27017:27017 --restart=always --name mongo -v E:\development_sources\docker\mongo\db:/data/db -d mongo --auth

3.进入容器内部
docker exec -it mongo mongosh admin

4.创建用户
db.createUser({
    user:'admin',pwd:'123456',roles:[ {
    role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

5.验证用户
db.auth('admin','123456')

6.连接容器
docker network connect dev_net mongo

使用Navicat连接MongoDB数据库,显示结果如下:
在这里插入图片描述

10.安装Nacos

1.在mysql中创建nacos数据库,并在nacos数据库中执行下面的sql脚本

/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
CREATE TABLE `config_info` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
 `data_id` varchar(255) NOT NULL COMMENT 'data_id',
 `group_id` varchar(255) DEFAULT NULL,
 `content` longtext NOT NULL COMMENT 'content',
 `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
 `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
 `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
 `src_user` text COMMENT 'source user',
 `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
 `app_name` varchar(128) DEFAULT NULL,
 `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
 `c_desc` varchar(256<
### 安装并配置 Docker Desktop 中的 JDK 为了在 Docker Desktop环境安装和配置 JDK,可以采取两种主要方法:一种是在容器内部安装 JDK;另一种则是创建带有预装 JDK 的自定义镜像。 #### 方法一:在现有容器安装 JDK 对于已经在运行的容器,可以通过命令行工具进入容器并手动安装 JDK: ```bash docker exec -it <container_name_or_id> /bin/bash ``` 这会打开一个交互式的 Bash shell 会话[^3]。接着可以根据所使用的 Linux 发行版来选择合适的包管理器进行 JDK 的安装。例如,在基于 Debian 或 Ubuntu 的系统上,可使用 `apt-get` 来完成此操作: ```bash apt-get update && apt-get install -y openjdk-8-jdk ``` 确认安装完成后,通过下面这条指令验证版本号以确保安装无误: ```bash java -version ``` #### 方法二:构建包含 JDK 的定制化 Docker 镜像 更推荐的方式是预先准备好含有所需软件环境的基础镜像文件 (Dockerfile),这样每次启动新实例都不必重复上述过程。以下是简单的 Dockerfile 示例用于创建含 OpenJDK 8 的镜像: ```dockerfile FROM ubuntu:latest RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:openjdk-r/ppa && \ apt-get update && \ apt-get install -y openjdk-8-jdk && \ rm -rf /var/lib/apt/lists/* CMD ["bash"] ``` 保存以上内容至名为 `Dockerfile` 的文本文件后,可以在同一目录下执行下列命令来建立新的镜像: ```bash docker build -t my-java-app . ``` 最后利用新建好的镜像启动一个新的容器即可享受已集成 JDK 的开发环境。 #### 解决可能出现的问题 有时即使按照正常流程完成了 JDK 的部署工作,仍然可能会遇到 `/bin/sh: java: not found` 这样的错误提示[^4]。此时应该检查 PATH 环境变量设置是否正确包含了 Java 可执行文件的位置路径,并考虑将这些更改持久化到 `.profile`, `.bashrc` 或者其他适当的初始化脚本当中去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值