【Docker】Docker Compose部署单节点多容器应用

一. Docker Compose 的能力

Docker Compose 通过一个 YAML 文件来定义应用的服务、网络和卷等,实现单宿主机下启动多容器的部署和管理。

 

二. 部署博客系统(博客+mysql)

1. docker命令部署

bitnami部署文档:

https://hub.docker.com/r/bitnami/wordpress?uuid=DEB26A7C-3F72-4B06-AA81-1A5A78638230

#创建网络
docker network create wordpress-network

创建数据库

docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=bn_wordpress \
  --env MARIADB_PASSWORD=bitnami \
  --env MARIADB_DATABASE=bitnami_wordpress \
  --network wordpress-network \
  --volume mariadb_data:/bitnami/mariadb \
  bitnami/mariadb:latest
docker volume create --name wordpress_data
docker run -d --name wordpress \
  -p 18080:8080 -p 8443:8443 \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env WORDPRESS_DATABASE_USER=bn_wordpress \
  --env WORDPRESS_DATABASE_PASSWORD=bitnami \
  --env WORDPRESS_DATABASE_NAME=bitnami_wordpress \
  --network wordpress-network \
  --volume wordpress_data:/bitnami/wordpress \
  bitnami/wordpress:latest

访问:

![[Pasted image 20241108174744.png]]

 

2. Compose文件部署多应用

# 包含4个一级key:version、services、networks、volumes。  
# 一. 服务  
services:  
  mariadb:  
    # 1. 容器名称  
    # 如果不配置container_name
    # a.容器的名称以项目名称(所在目录名称)为前缀。
    # b. 以一个数字为后缀用于标识容器实例序号——因为Docker Compose允许扩缩容。
    container_name: mariadb  
    # 2.本地镜像  
    image: bitnami/mariadb:latest  
    # 3. 端口映射  
    ports:  
      - '13306:3306'  
    # 4. 卷映射  
    ## 会创建一个卷:如果容器中此目录下有则不用  
    volumes:  
      - 'mariadb_data:/bitnami/mariadb'  
    # 5. 环境变量映射  
    environment:  
      # ALLOW_EMPTY_PASSWORD is recommended only for development.  
      - ALLOW_EMPTY_PASSWORD=yes  
      - MARIADB_USER=bn_wordpress  
      - MARIADB_DATABASE=bitnami_wordpress  
    # 6. 重启策略  
    ## always:开机就重启  
    restart: always  
    # 7. 网络:  
    networks:  
      - blog  
  wordpress:  
    container_name: wordpress  
    
### 使用 Docker Compose 部署单节点 Kafka 为了部署单节点的 Apache Kafka 实例,可以利用 DockerDocker Compose 工具来简化环境搭建过程。通过编写 `docker-compose.yml` 文件定义服务配置,能够轻松启动所需的服务容器。 创建一个新的目录用于保存项目文件,在该目录下新建名为 `docker-compose.yml` 的文件并编辑其内容如下: ```yaml version: '3' services: zookeeper: image: wurstmeister/zookeeper:latest ports: - "2181:2181" kafka: image: wurstmeister/kafka:latest depends_on: - zookeeper ports: - "9092:9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ``` 上述 YAML 文件描述了一个包含两个服务的应用程序:ZooKeeper 和 Kafka[^2]。其中 ZooKeeper 是 Kafka 所依赖的一项组件,负责管理集群中的元数据信息;而 Kafka 则是消息队列本身。这里指定了两者使用的镜像版本以及端口映射关系,使得外部设备可以通过指定主机 IP 地址加对应端口号的方式访问到内部运行着的服务实例。 完成以上操作之后,在命令行工具中切换至含有此文件的工作空间根路径位置执行下面这条指令即可一键拉取所需的镜像资源并将它们作为独立进程启动起来: ```bash docker-compose up -d ``` 这将会以后台守护模式开启所有被定义好的容器单元,并保持持续监听状态直至手动停止或异常中断为止。此时便成功构建起了一个简易版的消息中间件平台供本地开发测试所用了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值