使用Docker搭建几大主流关系型数据库
以下是使用Docker搭建几种主流关系型数据库的示例代码。
MySQL
# Dockerfile for MySQL
FROM mysql:5.7
ENV MYSQL_DATABASE db_name
ENV MYSQL_USER user_name
ENV MYSQL_PASSWORD user_password
ENV MYSQL_ROOT_PASSWORD root_password
EXPOSE 3306
构建并运行容器:
docker build -t mysql-container .
docker run -d -p 3306:3306 --name mysql-instance mysql-container
PostgreSQL
# Dockerfile for PostgreSQL
FROM postgres:12
ENV POSTGRES_DB db_name
ENV POSTGRES_USER user_name
ENV POSTGRES_PASSWORD user_password
EXPOSE 5432
构建并运行容器:
docker build -t postgres-container .
docker run -d -p 5432:5432 --name postgres-instance postgres-container
MongoDB
# Dockerfile for MongoDB
FROM mongo:4.2
ENV MONGO_INITDB_DATABASE db_name
ENV MONGO_INITDB_ROOT_USERNAME user_name
ENV MONGO_INITDB_ROOT_PASSWORD user_password
EXPOSE 27017
构建并运行容器:
docker build -t mongodb-container .
docker run -d -p 27017:27017 --name mongodb-instance mongodb-container
SQLite
SQLite不是一个独立的服务,而是嵌入式数据库,通常直接在应用程序中使用。但是,如果你想使用Docker运行一个SQLite容器,可以使用以下方法:
# Dockerfile for SQLite
FROM alpine:latest
RUN apk add --no-cache sqlite
WORKDIR /data
COPY create.sql .
RUN sqlite3 db_name < create.sql
CMD ["sqlite3", "db_name"]
create.sql是你的SQL脚本,可以用于初始化数据库。
构建并运行容器:
docker build -t sqlite-container .
docker run -it --name sqlite-instance sqlite-container
以上代码提供了使用Docker搭建MySQL、PostgreSQL、MongoDB和SQLite的基本示例。在运行数据库容器时,请确保将环境变量(如用户名、密码等)替换为安全的值,并适当暴露端口以便于外部访问。
评论已关闭