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 等镜像。
相关推荐
MiNG MENS2 分钟前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
2601_949814696 分钟前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
小雅痞39 分钟前
[Java][Leetcode simple] 28. 找出字符串中第一个匹配项的下标
java·开发语言·leetcode
likerhood44 分钟前
java中的不可变类(Immutable)
java·开发语言
yaoxin5211231 小时前
389. Java IO API - 获取文件名
java·开发语言·python
Wang15302 小时前
Java排序
java
逸风尊者2 小时前
XGBoost模型工程使用
java·后端·算法
一嘴一个橘子2 小时前
MP 自定义业务方法 (二)
java
低客的黑调2 小时前
MyBatis-Plus-从 CRUD 到高级特性
java·servlet·tomcat
就像风一样抓不住3 小时前
Java 手机号校验工具类
java