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 等镜像。
相关推荐
2501_940315261 小时前
98验证二叉搜索树
java·数据结构·算法
xuhaoyu_cpp_java1 小时前
JAVA线程安全类
java·开发语言
fengxin_rou1 小时前
一文读懂 Redis 集群:从哈希槽到透明访问
java·数据库·redis·算法·spring·缓存
m0_635647481 小时前
Qt开发与MySQL数据库教程(二)——MySQL常用命令以及示例
java·开发语言·数据库·mysql
⑩-2 小时前
@Vaild
java·javaee
Han.miracle2 小时前
Spring Boot 后端分层开发实战:从 MVC 到三层架构详解
java
invicinble2 小时前
it系统全链路思考
java
steel80882 小时前
SSM与Springboot是什么关系? -----区别与联系
java·spring boot·后端
白云如幻2 小时前
【JDBC】集合、反射和泛型复习
java·开发语言