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 等镜像。
相关推荐
benbenAItalk2 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl2 小时前
Java学习二 基本语法2, 算术运算符
java·学习
niucloud-admin3 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885723 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户3 小时前
Java锁
java·开发语言
迷途呀4 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化
shehuiyuelaiyuehao5 小时前
1计算机是如何工作的
java·计算机网络
letisgo55 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周5 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
三8446 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker