基于openeuler:20.03的docker镜像 封装mysql5:7的镜像,给出dockerfile案例,并且设置初始化脚本,给出具体初始化脚本案例,以及容器启动时需要设置的环境变量
时间: 2023-06-07 16:06:45 浏览: 165
详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
好的,以下是对您提出的问题的回答:
对于基于openEuler:20.03的docker镜像封装mysql5:7的镜像,您可以使用以下的dockerfile案例:
```
FROM openEuler:20.03
ENV MYSQL_ROOT_PASSWORD=password
RUN yum -y install mariadb mariadb-server mariadb-devel
COPY ./init.sql /docker-entrypoint-initdb.d/
EXPOSE 3306
CMD ["mysqld_safe"]
```
在这个案例中,我们首先使用openEuler:20.03作为基础镜像,并设置了MYSQL_ROOT_PASSWORD环境变量。然后我们使用yum命令安装了mariadb、mariadb-server和mariadb-devel。接着,我们将一个名为init.sql的文件复制到了docker-entrypoint-initdb.d目录下,这个文件会被用来初始化数据库。最后,我们将3306端口暴露出来,并设置容器启动后默认运行mysqld_safe命令。
对于初始化脚本,您可以在init.sql文件中编写SQL语句来创建数据库表、插入数据等,以下是一个简单的案例:
```
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE test_table (
id INT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO test_table VALUES (1, 'Alice');
INSERT INTO test_table VALUES (2, 'Bob');
```
在这个案例中,我们首先创建了一个名为test_db的数据库,然后在其中创建了一个名为test_table的表,并插入了两条数据。
最后,容器启动时需要设置的环境变量包括:
- MYSQL_ROOT_PASSWORD:用于设置MySQL的root用户密码;
- MYSQL_DATABASE:用于设置初始创建的数据库名称;
- MYSQL_USER:用于创建新的MySQL用户;
- MYSQL_PASSWORD:用于设置新的MySQL用户的密码。
希望这些回答能够帮助您!
阅读全文