首页 > 数据库 >Dockerfile练习二---------------------------构建自己的mysql镜像

Dockerfile练习二---------------------------构建自己的mysql镜像

时间:2023-05-21 18:22:46浏览次数:39  
标签:Dockerfile ## local --------------------------- usr mysql docker root

构建自己的mysql镜像

 

##NYSQL的shell安装脚本##

[root@docker tomcat]# cd ~
[root@docker ~]# mkdir mysql
[root@docker ~]# cd mysql/
[root@docker mysql]# vim run.sh
#!/bin/bash
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
make \
gcc \
gcc-c++
cd /opt
cd mysql-5.7.20/
cmake \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
make -j3 && make install -j3 ##注意此处的-j3根据核数定义,不要盲目跟从
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
echo "[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES" > /etc/my.cnf
chown mysql:mysql /etc/my.cnf
============================================

##MYSQL的Dockerfile##
将mysql-boost-5.7.20.tar.gz这个包拖进mysql/下
[root@docker mysql]# vim Dockerfile
FROM centos:7
MAINTAINER ZZT
ADD mysql-boost-5.7.20.tar.gz /opt
ADD run.sh /opt
WORKDIR /opt
RUN chmod +x run.sh
RUN ./run.sh
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
WORKDIR /usr/local/mysql/
RUN bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
##这里遇到个坑,start不起来,所以我使用开机自启最后交给容器帮我启动
RUN cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
EXPOSE 3306
RUN echo -e "#!/bin/bash \n systemctl enable mysqld" > /1.sh
RUN chmod 755 /1.sh
RUN sh /1.sh
##这里初始化,将mysql启动起来,对应前面的enable
CMD ["init"]


[root@docker mysql]# docker build -t mysql:new .
==================================================

###privileged表示root账户访问容器不降权,如果不加进不去mysql###
[root@docker mysql]# docker run -d -P --name=mysql_root --privileged mysql:new

[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8a6380eb103b mysql:new "init" 19 minutes ago Up 19 minutes 0.0.0.0:32772->3306/tcp mysql_root

[root@docker ~]# docker exec -it 8a6380eb103b /bin/bash
[root@8a6380eb103b mysql]#

[root@8a6380eb103b mysql]# mysqladmin -uroot -p password
Enter password: //回车,然后输入两次密码

[root@8a6380eb103b mysql]# mysql -uroot -p
Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

####数据库登录成功,容器正常运行###

2

标签:Dockerfile,##,local,---------------------------,usr,mysql,docker,root
From: https://www.cnblogs.com/cherishthepresent/p/17418941.html

相关文章

  • Sep 2022-Prioritized Training on Points that are Learnable, Worth Learning, and
    摘要:对网络规模的数据进行训练可能需要数月时间。但大多数计算和时间都浪费在已经学习或无法学习的冗余和噪声点上。为加速训练,本文提出了ReducibleHoldoutLossSelection(RHOLOSS),一种简单但有原则的技术,近似地选择那些最能减少模型泛化损失的点进行训练。因此,rho损失缓解了现......
  • Python 设计模式-观察者模式
    观察者模式是一种行为设计模式,它允许你定义一种订阅机制,可以在对象事件发生时通知多个观察者对象。下面是一个简单的Python观察者模式代码示例:classSubject:"""被观察者类,维护观察者列表,并在状态发生改变时通知观察者"""def__init__(self):self._......
  • 【中间件】通过 docker-compose 快速部署 Kafka 保姆级教程
    目录一、概述二、前期准备1)部署docker2)部署docker-compose三、创建网络四、安装Zookeeper五、Kafka编排部署1)下载Kafka2)配置3)启动脚本bootstrap.sh4)构建镜像Dockerfile5)编排docker-compose.yaml6)开始部署六、简单测试验证七、常用的Kafka客户端命令1)添加topic2)查看topic......
  • CVE-2022-24663
    简介原文链接:https://culturesun.site/index.php/archives/701.html是wordpress远程代码执行漏洞,任何订阅者都可以利用该漏洞发送带有“短代码”参数设置为PHPEverywhere的请求,并在站点上执行任意PHP代码。P.S.存在常见用户名低权限用户弱口令。本人使用春秋云境免费靶场......
  • CVE-2022-28525
    简介原文链接:https://culturesun.site/index.php/archives/694.html是一个CMS系统,存在任意文件上传漏洞。本人使用春秋云境免费靶场在线搭建。详解打开首页,发现一个登录注册框,尝试注册发现注册失败。直接尝试弱口令,admin-admin,成功登录。发现两个可以上传图片文件的入口,......
  • whatweb----web指纹探测工具
    简介原文链接:https://culturesun.site/index.php/archives/691.htmlWhatWeb是一款kali自带的工具。可以识别网站。它认可网络技术,包括内容管理系统(CMS)、博客平台、统计/分析包、JavaScript库、网络服务器和嵌入式设备。WhatWeb有900多个插件,每个插件都可以识别不同的东西。它还......
  • dockerfile示例
    FROMconetosVOLUMES['volumes01','volumes02']容器挂载相互同步先启动一个dockerrun-it--namedocker01centos:1.0在启动一个dockerrun-it--namedocker02--volumes-fromdocker01centos:1.0--volumes-from实现数据卷挂载同步相当于实现了继承(docker02ext......
  • 13-1 udp和internet层协议 13-2IP地址组成和分类13-4 网卡配置文件和命令 13-5 网络理
    一、查看当前机器广播的地址和mac[root@centos8~]#arp-n查看当前机器的广播地址[root@centos8~]#tcpdump-ieth0arp-nn抓包[root@centos8~]#ipaa10.0.0.100/24deveth0添加多网卡命令[root@centos8~]#arping10.0.0.100查看IP有没有被占用二、查看相关包有......
  • Nas Docker 安装个人记账web项目:firefly_iii &beancount-gs
    NasDocker安装个人记账web项目:firefly_iii&beancount-gs1.经过搜索以及GPT的询问,通过预览界面感觉firefly_iii官方示例demo:https://demo.firefly-iii.org/官方安装文档:https://docs.firefly-iii.org/firefly-iii/installation/docker/本人采用的是群晖Nasdocker安装:这个......
  • python-docx - 3
    1.样式1.1访问样式使用Document.styles属性访问样式。fromdocximportDocumentdocument=Document()#获取样式对象,这里面可以像字典一样访问,也可以迭代styles=document.stylesforstyleinstyles:print(style.name,"\t",style.type)#获取一个正文样式......