docker部署

该博客详细介绍了如何使用Dockerfile构建应用服务容器,包括配置Java环境、暴露服务端口和设置启动命令。同时,通过docker-compose.yml文件展示了如何搭建包含MySQL、Canal Server、Kibana、Nginx、Elasticsearch、RabbitMQ和Redis等多个服务的微服务集群,涉及数据持久化、网络配置和环境变量设置等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dockerfile

FROM java:8

COPY horse-park.jar /app.jar

EXPOSE 8001

ENTRYPOINT ["java", "-jar", "/app.jar"]

docker-compose.yml

version: '3.8'
services:
  horse-park:
    build: .
    image: horse-park:1.0
    container_name: horse-park
    ports:
      - "8001:8001"
    networks:
       - docker_ce_es7net
    volumes:
      - ./logs:/logs
networks:
  docker_ce_es7net:
    driver: bridge

总 docker-compose.yml

version: "3.1"
services:
  mysql:
    image: "mysql:5.7.30"
    container_name: mysql
    restart: always
    ports:
      - 3316:3306
    environment:
      - MYSQL_ROOT_PASSWORD=sJTCT5fm5KvJ79e4
    volumes:
      - ./mysql/mysql.conf:/etc/mysql/conf.d
      - ./mysql/mysql.conf.d:/etc/mysql/mysql.conf.d
      - ./mysql/mysql.log:/var/log
      - ./mysql/mysql.data:/var/lib/mysql
    networks:
      - es7net
  canal-server:
    image: "canal/canal-server:v1.1.4"
    container_name: canal-server
    restart: always
    ports:
      - 11111:11111
    depends_on:
      - mysql
    volumes:
      - ./canal-server/example/:/home/admin/canal-server/conf/example/
      - ./canal-server/logs/:/home/admin/canal-server/logs/
    networks:
      - es7net
  kibana:
    image: kibana:7.6.2
    container_name: kibana
    ports:
      - 5601:5601
    environment:
      - I18N_LOCALE=zh-CN
      - SERVER_NAME=kibana
      - ELASTICSEARCH_URL=http://elasticsearch:9200
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - XPACK_MONITORING_ENABLED=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
    networks:
      - es7net
  nginx:
    image: "nginx:1.7.8"
    container_name: nginx
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/nginx.conf/conf.d:/etc/nginx/conf.d
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./usr/local/nginx/upsteam_cache:/usr/local/nginx/upsteam_cache
      - ./vt:/data/vt
      - ./ROOT:/data/official
    networks:
      - es7net
  elasticsearch:
    image: elasticsearch:7.6.2
    restart: always
    container_name: elasticsearch
    environment:
      - cluster.name=elasticsearch-cluster
      - discovery.type=single-node
      - http.cors.enabled=true
      - http.cors.allow-origin=*
      - "ES_JAVA_OPTS=-Xms64m -Xmx512m"
    volumes:
      - ./elasticsearch/data/:/usr/share/elasticsearch/data/
      - ./elasticsearch/logs/:/usr/share/elasticsearch/logs/
      - ./elasticsearch/plugins/:/usr/share/elasticsearch/plugins/
      - ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
    ports:
      - 9200:9200
    networks:
      - es7net
  rabbitmq:
    container_name: rabbitmq
    environment:
      RABBITMQ_DEFAULT_VHOST: "/vision-time"
      RABBITMQ_DEFAULT_USER: "admin"
      RABBITMQ_DEFAULT_PASS: "pFAjfCT2gpDXGj@Y"
    image: "rabbitmq:3.6.9-management"
    restart: always
    volumes:
      - "./rabbitmq/data:/var/lib/rabbitmq"
      - "./rabbitmq/log:/var/log/rabbitmq/log"
    ports:
      - "15672:15672"
      - "4369:4369"
      - "5672:5672"
      - "25672:25672"
    networks:
      - es7net
  redis:
    image: "redis:6.0.5"
    container_name: redis
    restart: always
    ports:
      - 6377:6379
    command: redis-server --requirepass V0VqyJbXNzxsEAcJ
    networks:
      - es7net
networks:
  es7net:
    driver: bridge

### 使用 Docker部署教程 #### 一、Docker 基础操作 为了更好地理解如何使用 Docker 进行部署,首先需要掌握一些基础的操作命令。以下是常用的 Docker 命令及其功能: - **启动 Docker 服务** 可以通过 `sudo systemctl start docker` 来启动 Docker 服务[^1]。 - **停止 Docker 服务** 如果需要停止 Docker 服务,则可以运行 `systemctl stop docker`[^1]。 - **重启 Docker 服务** 当配置发生变化或者需要重新加载服务时,可执行 `sudo systemctl restart docker`[^1]。 这些基本命令能够帮助管理员控制 Docker 守护进程的状态。 --- #### 二、Docker 版本检查 在实际部署之前,建议先确认当前安装的 Docker 是否为最新版本或满足需求。这一步可通过输入以下命令完成: ```bash docker --version ``` 该命令用于显示已安装的 Docker 版本号[^1]。确保环境中的 Docker 是兼容目标应用所需的最低版本。 --- #### 三、具体场景下的 Docker 部署案例 ##### 1. StackStorm 的 Docker 部署 对于自动化运维工具 StackStorm 而言,官方提供了一种基于 Docker Compose 的快速部署方式。用户可以从指定仓库拉取镜像并按照文档指引设置好必要的参数文件即可实现一键化搭建流程[^2]。 具体的步骤包括但不限于克隆 Git 存储库以及调整 compose 文件内的变量定义等内容。更多细节请参阅项目主页链接:<https://gitcode.com/gh_mirrors/st/st2-docker>。 ##### 2. Nginx 的 Docker 部署与管理 针对 Web 服务器软件 Nginx,在生产环境中通常推荐采用容器技术来简化维护工作量。例如更新配置后无需手动进入宿主机内部修改而是直接利用外部挂载路径同步更改至实例内;另外还支持动态扩展规模等功能特性[^3]。 值得注意的是,不同于传统方法通过信号机制触发热更替动作(`nginx -s reload`) ,此时应改用如下形式发送请求给对应的目标实体对象: ```bash docker exec -it [容器ID|NAME] nginx -s reload ``` 此语法结构允许开发者轻松达成一致性的效果同时保留原有优势特点不变的前提下进一步增强了灵活性表现力等方面的优势所在之处值得肯定推广开来加以运用实践当中去检验其价值意义何在等问题都需要我们深入思考探索寻找答案解决办法才行啊朋友们加油吧! --- ### 总结 综上所述,无论是通用型的基础架构还是特定用途的应用程序都可以借助于 Docker 技术显著提升效率降低成本开销比例关系合理优化资源配置利用率水平等等诸多方面均有所体现出来供大家参考借鉴学习模仿复制粘贴过来就可以了嘛哈哈开玩笑啦其实还是要认真对待每一个环节步骤哦亲们记住咯😊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值