使用Dockerfile构建一个java+redis+mysql的大镜像,其中底层镜像使用centos7,mysql使用5.7版本,其中Dockerfile关键部分如下:
FROM centos:centos7
RUN \
mkdir -p /usr/local \
&& mkdir -p /data/mysql \
COPY libaio-0.3.109-13.el7.x86_64.rpm /usr/local
COPY mysql-community-common-5.7.32-1.el7.x86_64.rpm /usr/local
COPY mysql-community-client-5.7.32-1.el7.x86_64.rpm /usr/local
COPY mysql-community-libs-5.7.32-1.el7.x86_64.rpm /usr/local
COPY mysql-community-devel-5.7.32-1.el7.x86_64.rpm /usr/local
COPY mysql-community-server-5.7.32-1.el7.x86_64.rpm /usr/local
RUN \
yum -y install perl perl-devel perl-Module-Install.noarch net-tools \
&& yum -y install numactl \
&& yum -y install openssl-devel
cd /usr/local \
&& rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm \
&& rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm \
&& rpm -ivh mysql-community-devel-5.7.32-1.el7.x86_64.rpm \
&& chown -R mysql:mysql /data/mysql \
&&启动服务
&&设置密码
但在安装完RPM包后后启动mysql服务的部分不知道怎么写,centos的systemctl也因为权限用不了。
请问该怎么在centos镜像中启mysql啊
已知报错:
填写mysqld:
2023-04-25T08:39:46.280845Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-04-25T08:39:46.283040Z 0 [Note] mysqld (mysqld 5.7.32) starting as process 165 ...
2023-04-25T08:39:46.284533Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
2023-04-25T08:39:46.284606Z 0 [ERROR] Aborting
2023-04-25T08:39:46.284636Z 0 [Note] Binlog end
2023-04-25T08:39:46.284917Z 0 [Note] mysqld: Shutdown complete
填写mysqld -uroot无事发生
填写mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
使用find指令查也查不到mysql.sock。
容器的连接(linking)系统是除了端口映射外另一种可以与容器中应用进行交互的方式。它会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。