2024 年云原生运维实战文档 99 篇原创计划 第 003 篇 |Docker 最佳实战「2024」系列 第 003 篇
你好,欢迎来到运维有术。
今天分享的内容是 Docker 最佳实战「2024」 系列文档中的 定制 Docker compose 通用模板。
内容导图
实战服务器配置 (架构 1:1 复刻小规模生产环境,配置略有不同)
主机名 | IP | CPU(核) | 内存(GB) | 系统盘(GB) | 数据盘(GB) | 用途 |
---|---|---|---|---|---|---|
docker-node-1 | 192.168.9.81 | 4 | 16 | 40 | 100 | Docker 节点 1 |
docker-node-2 | 192.168.9.82 | 4 | 16 | 40 | 100 | Docker 节点 2 |
docker-node-3 | 192.168.9.83 | 4 | 16 | 40 | 100 | Docker 节点 3 |
合计 | 3 | 12 | 48 | 120 | 300 |
实战环境涉及软件版本信息
Docker 容器的创建启动方式有两种:
docker-compose
或是 docker compose
命令运行说明: docker compose 的方式只有使用 Docker 官方提供的软件源安装 Docker 引擎并且安装了
docker-compose-plugin
才支持
我们分享的内容都是基于 docker-compose.yml
创建并管理容器,为了提高工作效率,有必要定义一套标准的初始化模板。
本文以 Nginx 服务为例,创建标准化的 docker-compose.yml
文件通用模板。
本文使用 /data/containers
目录作为所有容器的根目录。
mkdir /data/containers
以 Nginx 为例,创建 Nginx 容器数据的常用基本目录,实际使用中可根据需求调整。
mkdir -p /data/containers/nginx/{data,config,templates,logs}
最小化的标准配置模板 docker-compose.yml
。
version: '3.5'
services:
nginx:
container_name: nginx
image: nginx:1.25.4
environment:
- NGINX_HOST=foobar.com
- NGINX_PORT=80
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/usr/share/nginx/html
- ${DOCKER_VOLUME_DIRECTORY:-.}/config/nginx.conf:/etc/nginx/nginx.conf
- ${DOCKER_VOLUME_DIRECTORY:-.}/templates:/etc/nginx/templates
ports:
- "80:80"
networks:
default:
name: nginx
重点说明: 一个最小化的模板包含以下基本内容,其他服务按模板修改套用即可。
启动 Docker 服务,并设置开机自启。
cd /data/containers/nginx
# 下载 docker-compose 二进制的方式,使用下面的命令
# docker-compose up -d
# Docker 官方 RPM 包安装的 Docker,使用下面的命令
docker compose up -d
cd /data/containers/nginx
docker compose ps -a
全文所有的操作,我都整理成了自动化脚本:
deploy-nginx.sh
#!/bin/bash
set -e
mkdir -p /data/containers/nginx/{data,config,templates,logs}
cd /data/containers/nginx
cat > docker-compose.yml << "EOF"
version: '3.5'
services:
nginx:
container_name: nginx
image: nginx:1.25.4-alpine
environment:
- NGINX_HOST=foobar.com
- NGINX_PORT=80
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/data:/usr/share/nginx/html
#- ${DOCKER_VOLUME_DIRECTORY:-.}/config/nginx.conf:/etc/nginx/nginx.conf
- ${DOCKER_VOLUME_DIRECTORY:-.}/templates:/etc/nginx/templates
ports:
- "80:80"
networks:
default:
name: nginx
EOF
docker compose up -d
docker compose ps
注意: 自动化脚本中 volumes 小节注释了一段内容,实际使用中可以提前准备好该文件,并取消注释。
根据本文所学,请完成以下实战任务。
本文分享了定制最小化 docker-compose.yml 文件标准模板的详细流程及注意事项。主要内容概括如下:
Get 本文实战视频(请注意,文档视频异步发行,请先关注)
免责声明:
如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @ 运维有术,及时收看更多好文!
欢迎加入 「运维有术·云原生实战训练营」 ,获取更多的 KubeSphere、Kubernetes、云原生运维实战技能。
版权声明
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。