Docker安装MySQL数据库
基本步骤和之前几篇文章一样,请参考前面的相关文章
Ubuntu安装MySQL安装
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)安装编译源码需要的包 sudo apt<span class="hljs-attribute" style="box-sizing: border-box;">-get</span> install make cmake gcc g<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">++</span> bison libncurses5<span class="hljs-attribute" style="box-sizing: border-box;">-dev</span> build<span class="hljs-attribute" style="box-sizing: border-box;">-essential</span> (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)下载并解压缩 mysql<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.26</span><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>tar<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>gz tar <span class="hljs-attribute" style="box-sizing: border-box;">-zxvf</span> mysql<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.26</span><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>tar<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>gz cd mysql<span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.26</span> (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>)编译安装 编译配置: cmake <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DCMAKE_INSTALL_PREFIX</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_DATADIR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">data</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DSYSCONFDIR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/etc <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_INNOBASE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_ARCHIVE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_BLACKHOLE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_PARTITION_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_PERFSCHEMA_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITHOUT_EXAMPLE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITHOUT_FEDERATED_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_CHARSET</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8 <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_COLLATION</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8_general_ci <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_EXTRA_CHARSETS</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">all</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DENABLED_LOCAL_INFILE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_READLINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_UNIX_ADDR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql/mysql<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>sock <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_TCP_PORT</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_USER</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>mysql <span class="hljs-attribute" style="box-sizing: border-box;">-DCOMPILATION_COMMENT</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"lq-edition"</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DENABLE_DTRACE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DOPTIMIZER_TRACE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_DEBUG</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> cmake <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DCMAKE_INSTALL_PREFIX</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_DATADIR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">data</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DSYSCONFDIR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/etc <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_INNOBASE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_ARCHIVE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_BLACKHOLE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_PARTITION_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_PERFSCHEMA_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITHOUT_EXAMPLE_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITHOUT_FEDERATED_STORAGE_ENGINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_CHARSET</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8 <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_COLLATION</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8_general_ci <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_EXTRA_CHARSETS</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">all</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DENABLED_LOCAL_INFILE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_READLINE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_UNIX_ADDR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql/mysql<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>sock <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_TCP_PORT</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DMYSQL_USER</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>mysql <span class="hljs-attribute" style="box-sizing: border-box;">-DCOMPILATION_COMMENT</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"lq-edition"</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DENABLE_DTRACE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DOPTIMIZER_TRACE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_DEBUG</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> 参数说明: <span class="hljs-attribute" style="box-sizing: border-box;">-DCMAKE_INSTALL_PREFIX</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//安装目录</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DINSTALL_DATADIR</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>/usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">data</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//数据库存放目录</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_CHARSET</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//使用utf8字符</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DDEFAULT_COLLATION</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span>utf8_general_ci <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//校验字符</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DWITH_EXTRA_CHARSETS</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">all</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//安装所有扩展字符集</span> <span class="hljs-attribute" style="box-sizing: border-box;">-DENABLED_LOCAL_INFILE</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">=</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//允许从本地导入数据</span> 编译: make 安装: sudo make install 配置MySQL (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)新建运行Mysql的用户和组 sudo groupadd mysql sudo useradd <span class="hljs-attribute" style="box-sizing: border-box;">-g</span> mysql mysql 登录mysql用户 先修改mysql用户的密码 passwd mysql (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)设置Mysql安装目录的权限 cd /usr/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">local</span>/mysql sudo chown <span class="hljs-attribute" style="box-sizing: border-box;">-R</span> mysql:mysql <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">/</span> (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>)建立配置文件 cp support<span class="hljs-attribute" style="box-sizing: border-box;">-files</span>/my<span class="hljs-attribute" style="box-sizing: border-box;">-default</span><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>cnf /etc/my<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>cnf sudo chown mysql:mysql /etc/my<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>cnf 修改配置文件: sudo vi /etc/my<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>cnf <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">[</span>client<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">]</span><span class="hljs-markup" style="box-sizing: border-box;"> port = 3306 socket = /usr/local/mysql/data/mysql.sock </span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">[</span>mysqld<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">]</span><span class="hljs-markup" style="box-sizing: border-box;"> port = 3306 socket = /usr/local/mysql/data/mysql.sock basedir = /usr/local/mysql datadir = /usr/local/mysql/data (4)初始化数据库 cd /usr/local/mysql sudo ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ (5)启动mysql服务 方法1: 直接启动 bin/mysqld_safe & 检查MySQL服务是否启动: ps -ef |grep mysql (6)配置环境变量 为了直接调用mysql,需要将mysql的bin目录加入PATH环境变量。 编辑/etc/profile文件: sudo vim /etc/profile 在文件最后 添加如下两行: PATH=$PATH:/usr/local/mysql/bin export PATH 关闭文件,运行下面的命令,让配置立即生效: source /etc/profile (7)修改root密码(因为默认密码为空) $ mysql -u root -p mysql> UPDATE user SET Password=PASSWORD('你想要的密码') where USER='root'; mysql> FLUSH PRIVILEGES; (8)授权root账户远程登录 $ mysql -u root -p mysql> grant ALL PRIVILEGES ON *.* to root@"%" identified by "root" WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; </span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li></ul>
Dockerfile文件
<code class="hljs coffeescript has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">##</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># version : birdben/ubuntu:mysql</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># desc : 当前版本安装的MySQL</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">######</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">##</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置继承自我们创建的 tools 镜像</span> FROM birdben/<span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">ubuntu</span>:tools <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 下面是一些创建者的基本信息</span> MAINTAINER birdben (<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">191654006</span>@<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">163.</span>com) <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置环境变量,所有操作都是非交互式的</span> ENV DEBIAN_FRONTEND noninteractive <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 添加 supervisord 的配置文件,并复制配置文件到对应目录下面。(supervisord.conf文件和Dockerfile文件在同一路径)</span> COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"export LC_ALL=C"</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 替换ubuntu软件更新的源服务器的sources.list文件</span> COPY sources.list /etc/apt/sources.list <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 安装升级gcc</span> RUN sudo rm -rf <span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/var/lib/apt/lists/</span>* RUN sudo apt-get update RUN sudo apt-get install -y make cmake gcc g++ bison libncurses5-dev build-essential <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 复制 mysql-5.6.22 文件到镜像中(mysql-5.6.22文件夹要和Dockerfile文件在同一路径)</span> ADD mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span> /software/downloads/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span> RUN cd /software/downloads/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span> && cmake . -DCMAKE_INSTALL_PREFIX=/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span> -DMYSQL_DATADIR=/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span>/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_ARCHIVE_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_BLACKHOLE_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_PARTITION_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_PERFSCHEMA_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITHOUT_FEDERATED_STORAGE_ENGINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_READLINE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DMYSQL_UNIX_ADDR=/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span>/mysql.sock -DMYSQL_TCP_PORT=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span> -DMYSQL_USER=mysql -DCOMPILATION_COMMENT=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"lq-edition"</span> -DENABLE_DTRACE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> -DOPTIMIZER_TRACE=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> -DWITH_DEBUG=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> && make && make install <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 添加测试用户mysql,密码mysql,并且将此用户添加到sudoers里</span> RUN useradd mysql RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"mysql:mysql"</span> | chpasswd RUN echo <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"mysql ALL=(ALL) ALL"</span> >> /etc/sudoers <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置Mysql安装目录的权限</span> RUN cd <span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/software/mysql-5.6.22 && sudo chown -R mysql:mysql ./</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 复制已经准备好的my.cnf文件到Docker容器</span> COPY my.cnf /etc/my.cnf RUN sudo chown <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">mysql</span>:mysql /etc/my.cnf <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 初始化数据库</span> RUN cd <span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/software/mysql-5.6.22 && sudo ./scripts/mysql_install_db --user=mysql --basedir=/software/mysql-5.6.22 --datadir=/software/mysql-5.6.22/data/</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 设置MySQL的环境变量,若读者有其他的环境变量需要设置,也可以在这里添加。</span> ENV MYSQL_HOME /software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># (不推荐下面的路径直接建立在Docker虚拟机上,推荐使用volume挂载方式)</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 在宿主机上创建一个数据库目录存储Mysql的数据文件</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># sudo mkdir -p /docker/mysql/data</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># VOLUME 选项是将本地的目录挂在到容器中 此处要注意:当你运行-v <hostdir>:<Containerdir> 时要确保目录内容相同否则会出现数据丢失</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 对应关系如下</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># mysql:/docker/mysql/data</span> VOLUME [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/software/mysql-5.6.22/data"</span>] <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 容器需要开放MySQL 3306端口</span> EXPOSE <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行supervisord来同时执行多个命令,使用 supervisord 的可执行路径启动服务。</span> CMD [<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/usr/bin/supervisord"</span>]</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li></ul>
Dockerfile源文件链接:
https://github.com/birdben/birdDocker/blob/master/mysql/Dockerfile
supervisor配置文件内容
<code class="hljs vala has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 配置文件包含目录和进程</span> <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 第一段 supervsord 配置软件本身,使用 nodaemon 参数来运行。</span> <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 第二段包含要控制的 2 个服务。每一段包含一个服务的目录和启动这个服务的命令。</span> [supervisord] nodaemon=<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">true</span> [program:sshd] command=/usr/sbin/sshd -D [program:mysqld] <span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;"># 这里使用mysqld_safe &方式启动MySQL服务,但是不知道为什么后面加上&启动MySQL会报错,不加&就能正常启动了,后来看了一遍自己以前安装ES的博客才发现,mysql启动必须改成非daemon启动方式,这样supervisor就可以监控到了,所以要去掉&</span> command=./software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.22</span>/bin/mysqld_safe --user=mysql</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li></ul>
my.cnf(复制MySQL_HOME/support-files/my-default.cnf文件修改如下)
<code class="hljs ini has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 102, 102);">[client]</span> <span class="hljs-setting" style="box-sizing: border-box;">port = <span class="hljs-value" style="box-sizing: border-box;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span></span></span> <span class="hljs-setting" style="box-sizing: border-box;">socket = <span class="hljs-value" style="box-sizing: border-box;">/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>/data/mysql.sock</span></span> <span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 102, 102);">[mysqld]</span> <span class="hljs-setting" style="box-sizing: border-box;">port = <span class="hljs-value" style="box-sizing: border-box;"><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span></span></span> <span class="hljs-setting" style="box-sizing: border-box;">socket = <span class="hljs-value" style="box-sizing: border-box;">/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>/data/mysql.sock</span></span> <span class="hljs-setting" style="box-sizing: border-box;">basedir = <span class="hljs-value" style="box-sizing: border-box;">/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span></span></span> <span class="hljs-setting" style="box-sizing: border-box;">datadir = <span class="hljs-value" style="box-sizing: border-box;">/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>/data</span></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>
控制台终端
<code class="hljs ruby has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 构建镜像</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>docker build -t=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"birdben/mysql:v1"</span> . <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 执行已经构件好的镜像</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>docker run -p <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9999</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span> -p <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span><span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">:</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3306</span> -t -i -v /docker/mysql/<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">data:</span>/software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>/data birdben/<span class="hljs-symbol" style="color: rgb(0, 102, 102); box-sizing: border-box;">mysql:</span>v1 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 可以ssh远程登录,然后登录mysql就大功告成了</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>ssh admin<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">@10</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">211.55</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span> -p <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9999</span> <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># root账号的默认密码是空</span> <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>cd /software/mysql-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5.6</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>/bin <span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">$ </span>mysql -u root -p <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 修改root密码(因为默认密码为空)</span> mysql> use mysql; mysql> <span class="hljs-constant" style="box-sizing: border-box;">UPDATE</span> user <span class="hljs-constant" style="box-sizing: border-box;">SET</span> <span class="hljs-constant" style="box-sizing: border-box;">Password</span>=<span class="hljs-constant" style="box-sizing: border-box;">PASSWORD</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'你想要的密码'</span>) where <span class="hljs-constant" style="box-sizing: border-box;">USER</span>=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'root'</span>; mysql> <span class="hljs-constant" style="box-sizing: border-box;">FLUSH</span> <span class="hljs-constant" style="box-sizing: border-box;">PRIVILEGES</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;"># 授权root账户远程登录,然后就可以通过navicat或者其他客户端工具连接到MySQL服务器了</span> mysql> grant <span class="hljs-constant" style="box-sizing: border-box;">ALL</span> <span class="hljs-constant" style="box-sizing: border-box;">PRIVILEGES</span> <span class="hljs-constant" style="box-sizing: border-box;">ON</span> *.* to root@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%"</span> identified by <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"root"</span> <span class="hljs-constant" style="box-sizing: border-box;">WITH</span> <span class="hljs-constant" style="box-sizing: border-box;">GRANT</span> <span class="hljs-constant" style="box-sizing: border-box;">OPTION</span>; mysql> <span class="hljs-constant" style="box-sizing: border-box;">FLUSH</span> <span class="hljs-constant" style="box-sizing: border-box;">PRIVILEGES</span>; </code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li></ul>
参考文章
-
顶
- 0
-
踩