构建mysql的image的Dockerfile如下:
FROM ubuntu
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -nfs /bin/true /sbin/initctl
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get -y install mysql-client mysql-server
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
ADD ./startup.sh /opt/startup.sh
EXPOSE 3306
CMD ["/bin/bash", "/opt/startup.sh"]
可以看出,该image是在ubuntu的基础上,下载mysql-server和mysql-client,并将mysql的绑定地址由127.0.0.1改为0.0.0.0,即由本机IP改为所有IP。此外,通过“EXPOSE 3306”来开放内部的3306端口供container外部使用,并设置启动脚本为startup.sh。
#!/bin/bash
if [ ! -f /var/lib/mysql/ibdata1 ]; then
mysql_install_db
mysqld &
sleep 10s
echo "GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'a' WITH GRANT OPTION; FLUSH PRIVILEGES" | mysql
killall mysqld
sleep

本文介绍了如何利用Dockerfile构建一个名为sunset108/mysql的MySQL镜像,并详细说明了在服务启动后,如何通过run-client.sh脚本连接到容器内的MySQL服务进行数据库操作。
最低0.47元/天 解锁文章
480

被折叠的 条评论
为什么被折叠?



