MySQL镜像构建

MySQL镜像构建

前期准备

在这里插入图片描述

已构建centos67-ssh:5.3镜像

supervisord.conf内容

#用于容器启动时启动相关服务或运行脚本

[program:sshd]
command=service sshd start
[program:crond]
command=service crond start
[program:mysql-config]
autorestart=false
command=sh /root/mysql-config.sh
[program:mysql]
command=service mysqld start

mysql-config.sh内容

#配置时钟同步
sed -i ‘/^server.*/d’ /etc/ntp.conf
echo ‘*/1 * * * * /usr/sbin/ntpdate -q ‘$CLOUDERA_MASTER >>
/var/spool/cron/root
#修改mysql的root用户密码,并授予任意主机远程访问权限
service mysqld stop
printf “Starting MySQL with skip grant tables\n”
mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
printf “using mysql to flush privileges and reset password\n”
mysql -u root mysql << EOF
update user set password = password(’$MYSQL_ROOT_PASSWORD’) where user =
‘root’;
grant all privileges on *.* to ‘root’@’%’ identified by
‘$MYSQL_ROOT_PASSWORD’ with grant option;
flush privileges;
EOF
service mysqld restart

Dockerfile内容

FROM centos67-ssh:5.3
WORKDIR /root
ADD supervisord.conf /root/supervisord.conf
ADD mysql-config.sh /root/mysql-config.sh
ADD mysql-community-release-el6-5.noarch.rpm
/root/mysql-community-release-el6-5.noarch.rpm
RUN echo ‘proxy=http://xzproxy.cnsuning.com:8080’ >> /etc/yum.conf \
&& rpm -ivh /root/mysql-community-release-el6-5.noarch.rpm \
&& yum install -y mysql-server && yum install -y supervisor \
&& yum clean all \
&& sed -i ‘/^proxy=.*/d’ /etc/yum.conf \
&& sed -i
‘s#socket=/var/lib/mysql/mysql.sock#socket=/var/lib/mysql/mysql.sock\nmax_connections=500\nwait_timeout=31536000#g’
/etc/my.cnf \
&& sed -i ‘s/^nodaemon=.*/nodaemon=true/g’ /etc/supervisord.conf \
&& cat /root/supervisord.conf >> /etc/supervisord.conf \
&& rm -rf /root/supervisord.conf \
&& rm -rf /var/cache/yum/* \
&& rm -rf /var/lib/mysql/* \
&& chown -R root:root /var/lib/mysql \
&& chmod u+x /root/mysql-config.sh \
&& chkconfig supervisord on \
&& chkconfig iptables off \
&& chkconfig ntpd on \
&& chkconfig mysqld on
ENV MYSQL_ROOT_PASSWORD="" \
CLOUDERA_MASTER=localhost
VOLUME ["/var/lib/mysql"]
EXPOSE 22 3306
CMD ["/usr/bin/supervisord"]

其他文件

mysql-community-release-el6-5.noarch.rpm用于添加安装mysql源

构建命令

进入到Dockerfile文件所在目录,执行以下命令:

sudo docker build -t centos67-ssh53-mysql:5.6 .

启动mysql容器

在主机创建目录

sudo mkdir -p /home/hadoop/mysql

启动mysql容器

sudo docker run -d -p 3306:3306 -p 1022:22 -v
/home/hadoop/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=suning --name
cloudera-mysql --hostname cloudera-mysql --net shadownet --ip 172.18.0.2
–add-host cloudera-master:172.18.0.3 --add-host cloudera-slave1:172.18.0.4
–add-host cloudera-slave2:172.18.0.5 --add-host cloudera-slave3:172.18.0.6
–restart=always centos67-ssh53-mysql:5.6

–name 容器名称

–hostname 容器主机名称

–net 网络名称

–ip 容器ip,必须和–net配合使用,并且—net指定的网络必须为自定义网络

–add-host 在容器中添加hosts

–restart 容器重启策略

no,默认策略,在容器退出时不重启容器

on-failure,在容器非正常退出时(退出状态非0),才会重启容器

on-failure:3,在容器非正常退出时重启容器,最多重启3次

always,在容器退出时总是重启容器

unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

-d 后台启动

-p端口映射:

1022是宿主机端口

22是容器端口

-v 指定宿主机和容器目录映射

/home/hadoop/mysql是宿主机目录

/var/lib/mysql是容器目录

-e 指定环境变量

MYSQL_ROOT_PASSWORD 是设置root用户密码

centos67-ssh53-mysql:5.6是镜像名:镜像tag

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值