之前一篇隨筆《Docker Centos安裝Openssh》 寫的是如何在基礎的centos鏡像中搭建ssh服務,在此基礎上再搭建其他服務。本文繼續介紹在centos_ssh基礎上搭建mysql服務。
1、啟動centos_sshd鏡像
# docker run --net=host -d registry:5000/centos-sshd-222:v1.0 /run.sh
這里用的是host模式連接的網絡,啟動之后即可通過ssh登錄到容器內部,裝上mysql之后可以直接重啟容器來驗證是否成功。
2、安裝mysql
# yum install wget -y # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm # yum install mysql-community-server
3、配置
# mysql_install_db --user=mysql --ldata=/var/lib/mysql
4、開啟mysql
# mysqld_safe
5、配置root用戶密碼、賦予root遠程連接權限
再開一個終端,進入mysql,執行如下命令:
# mysql -u root mysql> UPDATE mysql.user SET Password = PASSWORD('123456') WHERE User = 'root'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql> flush privileges;
6、更改mysql配置,使服務忽略大小寫、以utf8傳輸等
# vi /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [client] default-character-set=utf8 [mysqld] # # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M lower_case_table_names=1 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql max_allowed_packet=20M # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server=utf8 init_connect='SET NAMES utf8' sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] default-character-set=utf8 # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 # Recommended in standard MySQL setup #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
7、更改啟動腳本
[root@localhost /]# vi /run.sh #!/bin/bash mkdir /var/run/mysqld chgrp mysql /var/run/mysqld/ chmod g+w /var/run/mysqld/ /usr/sbin/sshd mysqld_safe
8、重啟容器
[root@localhost home]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9766bd087945 registry:5000/centos-sshd-222:v1.0 "/run.sh" 38 minutes ago Up 36 seconds hopeful_hawking [root@localhost home]# docker restart 9766bd087945 9766bd087945
9、驗證mysql,在其余安裝了mysql的服務器上執行:
[root@localhost home]# mysql -u root -p123456 -h192.168.31.203 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.25 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye [root@localhost home]# mysql -u root -p123456 -h192.168.31.203 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.25 MySQL Community Server (GPL) Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) mysql>
10、提交至docker鏡像,該步驟在《Docker Centos安裝Openssh》中提到過,敬請移步至該文章。