【云原生-Docker】快速搭建日常应用部署

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 【云原生-Docker】快速搭建日常应用部署

基础环境准备


基础信息

docker通讯底层基于iptables,firewalld也是对iptables的封装

docker-compose是单击容器编排工具

docker-swarm跨机器进行容器编排,docker内置

kubernetes 用于大量容器编排工具

docker安装

linux docker 安装

docker快速构建应用

mysql

docker run -p 3306:3306 --name mysql -v /home/docker/mysql/conf:/etc/mysql -v /home/docker/mysql/logs:/logs -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12ncqOwTCGyg7tYbr34 -d mysql:5.7

映射外网端口:3306

容器名字: mysql

宿主机持久化、日志、配置文件目录:/home/docker

版本: 5.7

默认的root密码: 12ncqOwTCGyg7tYbr34

postgre

docker run -p 5432:5432 -v /home/docker/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -e TZ=PRC --name=postgres postgres

映射外网端口:5432

容器名字: postgres

宿主机持久化目录:/home/docker/postgresql/data

默认的root密码: 123456

nacos

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

映射外网端口:8848

容器名字: nacos

模式为单机启动:MODE

gogs

docker run -d -p 10022:22 -p 10080:3000 --name=gogs -v /home/gogs/data/:/data gogs/gogs

映射外网端口:10080

容器名字: nacos

模式为单机启动:MODE

sentinel

docker run --name sentinel -d -p 8858:8858 -d bladex/sentinel-dashboard

映射外网端口:8858

容器名字: sentinel

zipkin

docker run -d --restart always -p 9411:9411 --name zipkin openzipkin/zipkin

映射外网端口:9411

容器名字: zipkin

jenkins

docker run -d \
  --restart always \
  --name jenkins \
  -u root \
  -p 5892:8080 \
  -v /home/docker/jenkins/jenkins-data:/var/jenkins_home \
  -v /home/docker/jenkins/docker.sock:/var/run/docker.sock \
  -v /home/docker/jenkins:/home \
  jenkinsci/blueocean

映射外网端口:5892

容器名字: jenkins

宿主机持久化目录:/home/docker/jenkins

nginx

docker run -d -p 8100:80 \
--name nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
--privileged=true \
nginx

映射外网端口:8100

容器名字: nginx

宿主机持久化目录:/home/nginx

rancher

docker run -d -v /home/docker/rancher/mysql-data/mysql:/var/lib/mysql --restart=unless-stopped -p 5652:8080 rancher/server

映射外网端口:5652

redis

docker run -p 6379:6379 --name redis -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456

映射外网端口:6379

容器名字: redis

宿主机持久化目录:/home/redis

redis密码:123456

portainer

docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name portainer portainer/portainer

映射外网端口:9000

容器名字: portainer

rocketMQ

nameServer
docker run -d \
--name rmqnamesrv \
-p 19876:9876 \
-v /home/docker/rocketmq/data/namesrv/logs:/root/logs \
-v /home/docker/rocketmq/data/namesrv/store:/root/store \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" \
rocketmqinc/rocketmq sh mqnamesrv

映射外网端口:19876

容器名字: rmqnamesrv

宿主机持久化目录:/home/docker/rocketmq/data

broker服务器

docker run -d \
--name rmqbroker \
-v /home/docker/rocketmq/data/broker/logs:/root/logs \
-v /home/docker/rocketmq/data/broker/store:/root/store \
-v /home/docker/rocketmq/data/conf/broker.conf:/opt/rocketmq/conf/broker.conf \
--link rmqnamesrv:namesrv -e "NAMESRV_ADDR=IP:19876" \
-e "JAVA_OPTS=-Duser.home=/opt" \
-e "JAVA_OPT_EXT=-server -Xms1024m -Xmx1024m" \
rocketmqinc/rocketmq sh mqbroker -c /home/docker/rocketmq/broker/broker.conf

映射外网端口:10911

容器名字: rmqbroker

宿主机持久化目录:/home/docker/rocketmq/data/broker

NAMESRV_ADDR=IP:19876 当前的rmqnamesrv IP及端口

界面控制台

docker run -d \
-e "JAVA_OPTS=-Drocketmq.config.namesrvAddr=IP:19876 -Drocketmq.config.isVIPChannel=false" \
-p 9993:8080 -t styletang/rocketmq-console-ng

映射外网端口:9993

namesrvAddr=IP:19876 当前的rmqnamesrv IP及端口
rocketMQ docker-compose启动
version: '3.5'
services:
  rmqnamesrv:
    image: rocketmqinc/rocketmq-namesrv
    container_name: rmqnamesrv
    ports:
      - 19876:9876
    volumes:
      - /home/docker/rocketmq/namesrv/logs:/opt/logs
      - /home/docker/rocketmq/namesrv/store:/opt/store
  rmqbroker:
    image: rocketmqinc/rocketmq-broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - /home/docker/rocketmq/broker/logs:/opt/logs
      - /home/docker/rocketmq/broker/store:/opt/store
      - /home/docker/rocketmq/broker/broker.conf:/etc/rocketmq/broker.conf
    environment:
        NAMESRV_ADDR: "192.168.0.37:19876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /home/docker/rocketmq/broker/broker.conf
    depends_on:
      - rmqnamesrv
  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 7799:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=192.168.0.37:19876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqnamesrv

xxl-job

docker run -d \
    -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.0.37:3307/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456 --xxl.job.accessToken=a984ddf0-ce9d-40a2-84d3-3ffba0d21ee0" \
    -e JAVA_OPTS="-Xms512m -Xmx512m" \
    -p 7777:8080 \
    -v /home/docker/xxllog:/data/applogs \
    --name xxl-job-admin xuxueli/xxl-job-admin:2.3.0

映射外网端口:7777

容器名字: xxl-job-admin

宿主机持久化目录:/home/docker/rocketmq/data/broker

-e PARAMS 配置JDBC信息

netdata

docker run -d --name=netdata \
  -p 19999:19999 \
  -v /home/docker/netdata/netdataconfig:/etc/netdata \
  -v /home/docker/netdata/netdatalib:/var/lib/netdata \
  -v /home/docker/netdata/netdatacache:/var/cache/netdata \
  -v /home/docker/netdata/etc/passwd:/host/etc/passwd:ro \
  -v /home/docker/netdata/etc/group:/host/etc/group:ro \
  -v /home/docker/netdata/proc:/host/proc:ro \
  -v /home/docker/netdata/sys:/host/sys:ro \
  -v /home/docker/netdata/etc/os-release:/host/etc/os-release:ro \
  --restart unless-stopped \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

activemq

docker run --name='activemq' \
      -itd \
      -p 8161:8161 \
      -p 61616:61616 \
      -e ACTIVEMQ_ADMIN_LOGIN=admin \
      -e ACTIVEMQ_ADMIN_PASSWORD=123456 \
      --restart=always \
      -v /usr/soft/activemq:/data/activemq \
      -v /usr/soft/activemq/log:/var/log/activemq \
      webcenter/activemq:latest

扩展知识

kubeadm搭建k8s集群

docker常用命令总结大全

到底什么是云原生?下一个内卷

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
25天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
82 2
|
23天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
5天前
|
Cloud Native 持续交付 开发者
云原生技术在现代企业中的应用与实践####
本文深入探讨了云原生技术的核心概念及其在现代企业IT架构转型中的关键作用,通过具体案例分析展示了云原生如何促进企业的敏捷开发、高效运维及成本优化。不同于传统摘要仅概述内容,本部分旨在激发读者对云原生领域的兴趣,强调其在加速数字化转型过程中的不可或缺性,为后续详细论述奠定基础。 ####
|
26天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
113 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
10天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
31 3
|
19天前
|
监控 Cloud Native 持续交付
云原生技术在现代企业中的应用与实践
本文将深入探讨云原生技术如何改变现代企业的运作模式,提升业务灵活性和创新能力。通过实际案例分析,我们将揭示云原生架构的关键要素、实施步骤以及面临的挑战,为读者提供一套清晰的云原生转型指南。
|
25天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
25天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
25天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代软件开发中的应用与挑战
【10月更文挑战第37天】随着云计算技术的不断演进,云原生技术已经成为推动软件开发现代化的重要力量。本文将深入探讨云原生技术的核心概念、优势以及面临的挑战,并通过一个实际的代码示例,展示如何在云原生环境中部署一个简单的应用。我们将从云原生的基础架构出发,逐步引导读者理解其在现代软件开发中的关键作用。
31 1
|
27天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理