基于centos9镜像用dockerfile构建mysql8.0
时间: 2023-06-12 21:02:59 浏览: 215
以下是一个简单的Dockerfile,用于在CentOS 9镜像中构建MySQL 8.0:
```
FROM centos:9
# 安装MySQL 8.0
RUN yum install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm && \
yum install -y mysql-community-server && \
yum clean all
# 配置MySQL
RUN mkdir /docker-entrypoint-initdb.d
COPY my.cnf /etc/
COPY init.sql /docker-entrypoint-initdb.d/
# 暴露3306端口
EXPOSE 3306
# 启动MySQL
CMD ["mysqld"]
```
这个Dockerfile包含以下步骤:
1. 基于CentOS 9构建镜像。
2. 安装MySQL 8.0。
3. 配置MySQL,包括复制my.cnf文件和将init.sql文件复制到/docker-entrypoint-initdb.d目录中。
4. 暴露MySQL默认端口3306。
5. 启动MySQL。
你需要在与Dockerfile相同的目录中创建一个my.cnf文件和一个init.sql文件,这些文件将用于配置MySQL和初始化数据库。以下是my.cnf文件的示例内容:
```
[mysqld]
default-authentication-plugin=mysql_native_password
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
```
以下是init.sql文件的示例内容:
```
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO users (name) VALUES ('Alice'), ('Bob'), ('Charlie');
```
构建镜像命令:
```
docker build -t mysql8.0:centos9 .
```
运行容器命令:
```
docker run --name mysql8.0 -p 3306:3306 -d mysql8.0:centos9
```
这将创建一个名为“mysql8.0”的容器,并将其映射到本地机器的3306端口。
阅读全文