Docker练习

Docker部署Nginx(核心,暴露端口)

复制代码
docker pull nginx#拉取nginx最新镜像
docker run -d --name nginx01 -p 主机端口:容器端口 nginx # 主机端口映射容器端口,后台启动名为nginx01的Nginx容器
docker ps                 #查看容器
curl localhost:主机端口    #本机测试

Docker部署tomcat(核心,测试常用--rm)

复制代码
docker run -it --rm tomcat#拉取运行最新镜像(--rm用完即删,可供测试容器停止 )
docker run -d --name tomcat01 -p 主机端口:容器端口 tomcat # 主机端口映射容器端口。。。。。。
docker ps                 #查看容器
curl localhost:主机端口    #本机测试
docker exec -it tomcat01 /bin/bash

本机测试没有问题,这是因为官方 Tomcat 镜像(尤其是 8/9/10 版本)会把 webapps 目录清空,把示例页面放在 webapps.dist 里,所以直接访问根路径就会 404

只需要将webapps.dist目录下的所有文件拷贝到webapps目录下即可正常访问

Docker部署es+kibana(核心,修改配置)

#es暴露的端口很多,耗内存,数据需要放到安全目录,挂载!

复制代码
# 1. 创建名为 somework 的桥接网络(Docker 常用网络模式)
docker network create somework

docker run -d \
  --name elasticsearch \
  --net somework \  # 加入自定义网络(容器间通信用)
  -p 9200:9200 \    # HTTP 访问端口
  -p 9300:9300 \    # 集群通信端口
  -e "discovery.type=single-node" \  # 单节点模式
  -e "ES_JAVA_OPTS=-Xms64m -Xmx512m" \  # 限制内存(必加!否则ES会占满内存导致崩溃)
  -e "xpack.security.enabled=false" \    # 关闭安全验证(测试环境用,生产需开启)
  -v /data/elasticsearch/data:/usr/share/elasticsearch/data \  # 挂载数据目录(数据持久化)
  -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \  # 挂载日志目录
  --restart always \  # 宿主机重启后ES自动启动

docker stats #查看内存

-e 环境配置修改
systemctl daemon-reload

systemctl restart docker

bash 复制代码
#启动 Kibana 容器
docker run -d --name kibana01 --net somework -p 5601:5601 -e ELASTICSEARCH_HOST=http://elasticsearch01:9200 -e I18N_LOCALE-zh-CN kibana:7.6.2
#ELASTICSEARCH_HOSTS=http://elasticsearch01:9200:用容器名访问 ES(同网络下 DNS 自动解析)
#I18N_LOCALE=zh-CN:界面汉化
docker exec -it --user root kibana01 /bin/bash #以 root 身份进入容器

#浏览器访问http://192.168.190.132:5601

安装portainer

Portainer 是一款可视化的 Docker 管理工具,能通过网页界面轻松管理容器、镜像、网络、数据卷等。

一、安装前提

  • Docker 已正常运行(docker ps 能看到 ES/Kibana 容器);
  • 确保 9000 端口未被占用(Portainer 默认端口)。

二、步骤 1:创建 Portainer 数据卷(持久化配置)

Portainer 的配置数据需要持久化,避免容器删除后配置丢失:

复制代码
docker volume create portainer_data

三、步骤 2:启动 Portainer 容器

执行以下命令启动 Portainer(推荐使用最新稳定版 portainer/portainer-ce):

bash 复制代码
docker run -d --name portainer --restart=always -p 8088:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
#--restart=always 开机自启,容器异常退出自动重启
# -v /var/run/docker.sock:/var/run/docker.sock 挂载 Docker 套接字,让 Portainer 管理本地 Docker
# -v portainer_data:/data 挂载数据卷,持久化配置

四、步骤 3:初始化 Portainer

  1. 访问 Portainer 界面 :浏览器打开 http://你的服务器IP:9000(比如 http://192.168.190.132:9000)。

  2. 创建管理员账号 :首次进入会要求设置管理员密码,输入后点击 Create user

  3. 选择管理的 Docker 环境

    • 选择 Local(本地 Docker)→ 点击 Connect
    • 等待加载完成后,点击左侧 Get Started 进入主页。

五、步骤 4:用 Portainer 管理的 ES/Kibana 容器

进入 Portainer 主页后,核心操作:

  1. 查看容器 :点击左侧 Containers,能看到 elasticsearch01kibana01portainer 三个容器,状态、端口、日志都能一键查看;
  2. 操作容器:对 ES/Kibana 可执行「启动 / 停止 / 重启 / 日志 / 进入容器」等操作,无需记命令;
  3. 管理网络 :点击左侧 Networks,能看到创建的 somework 网络,可查看网络内的容器;
  4. 管理镜像 :点击左侧 Images,能看到 elasticsearch:7.6.2kibana:7.6.2 等镜像。
相关推荐
学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
chexus1 小时前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存
万亿少女的梦1682 小时前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
咩咩啃树皮10 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚10 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白12 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司13 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地14 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415914 小时前
TCP超时重传机制是为了解决什么问题?
java