Docker镜像:Docker镜像是一个轻量级的、可执行的独立软件包,包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
PostgreSQL:PostgreSQL是一种功能强大的开源对象关系数据库管理系统(ORDBMS),具有复杂查询、外键、触发器、视图和多版本并发控制(MVCC)等功能。
Kubernetes(K8s):Kubernetes是一个开源的容器编排平台,可以自动化应用程序的部署、扩展和管理。
# 使用官方PostgreSQL镜像作为基础镜像
FROM postgres:latest
# 设置环境变量
ENV POSTGRES_USER=myuser
ENV POSTGRES_PASSWORD=mypassword
ENV POSTGRES_DB=mydatabase
# 将初始化脚本复制到镜像中
COPY init.sql /docker-entrypoint-initdb.d/
# 暴露端口
EXPOSE 5432
init.sql
:-- 创建数据库和表
CREATE DATABASE mydatabase;
\c mydatabase;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
docker build -t my-postgres-image .
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: my-postgres-image
ports:
- containerPort: 5432
env:
- name: POSTGRES_USER
value: myuser
- name: POSTGRES_PASSWORD
value: mypassword
- name: POSTGRES_DB
value: mydatabase
---
apiVersion: v1
kind: Service
metadata:
name: postgres-service
spec:
selector:
app: postgres
ports:
- protocol: TCP
port: 5432
targetPort: 5432
type: ClusterIP
kubectl apply -f deployment.yaml
云+社区技术沙龙[第11期]
云+社区开发者大会 武汉站
云+社区技术沙龙第33期
云+社区技术沙龙[第28期]
云+社区技术沙龙[第26期]
DB TALK 技术分享会
云+社区技术沙龙[第16期]
云+社区开发者大会(苏州站)
领取专属 10元无门槛券
手把手带您无忧上云