[root@localhost ~]# yum install yum-utils device-mapper-persistent-data lvm2 -y[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo[root@localhost ~]# yum install -y docker-ce[root@localhost ~]# systemctl stop firewalld.service[root@localhost ~]# setenforce 0[root@localhost ~]# systemctl start docker.service[root@localhost ~]# systemctl enable docker.service[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors":["https://w1ogxqvl.mirror.aliyuncs.com"]}
EOF
[root@localhost ~]# systemctl daemon-reload[root@localhost ~]# systemctl restart docker[root@localhost ~]# docker pull centos:7[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 6 weeks ago 203MB
[root@localhost ~]# mkdir /aaa[root@localhost ~]# cd /opt/[root@localhost opt]# mkdir mysql[root@localhost opt]# mount.cifs //192.168.10.190/rpm /aaa
Password for root@//192.168.10.190/rpm:
[root@localhost opt]# cd /aaa/mysql/[root@localhost mysql]# ls
mysql-5.5.24.tar.gz mysql-5.7.17.tar.gz boost_1_59_0.tar.gz mysql-5.6.26.tar.gz mysql-boost-5.7.20.tar.gz
[root@localhost mysql]# cp mysql-boost-5.7.20.tar.gz /opt/mysql/[root@localhost mysql]# cd /opt/mysql/[root@localhost mysql]# ls
mysql-boost-5.7.20.tar.gz
[root@localhost mysql]# vim my.conf[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
#插入以上內容後,按Esc退出插入模式,輸入:wq保存退出[root@localhost mysql]# vim Dockerfile
FROM centos:7
MAINTAINER zhou <INSTALL MYSQL5.7.20>
ADD mysql-boost-5.7.20.tar.gz /opt
WORKDIR /opt/mysql-5.7.20/
RUN yum -y update
RUN yum -y install \
cmake \
ncurses \
ncurses-devel \
bison \
gcc gcc-c++ \
make
RUN useradd -s /sbin/nologin mysql
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-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
RUN make&&makeinstall
RUN chown -R mysql:mysql /usr/local/mysql/
RUN rm -rf /etc/my.cnf
ADD my.cnf /etc
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
RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
EXPOSE 3306
RUN echo -e "#!/bin/sh \nsystemctl enable mysqld"> /run.sh
RUN chmod 755 /run.sh
RUN sh /run.sh
CMD ["init"]#插入以上內容後,按Esc退出插入模式,輸入:wq保存退出[root@localhost ~]# docker build -t centos:mysql .[root@localhost ~]# docker run --name=mysql_server -d -P --privileged mysql:centos
070e594c953c6a83ae97531710ca16ea7e3ea00f814e4f68e1548b2790323125
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
070e594c953c mysql:centos "init" 59 seconds ago Up 57 seconds 0.0.0.0:32768->3306/tcp mysql_server
`此時容器狀態爲Up,對外端口號爲32768,ID號爲070e594c953c`[root@localhost ~]# docker exec -it 070e594c953c /bin/bash#進容器給權限[root@070e594c953c mysql]# mysql -u root -p
Enter password: #此處直接回車
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.20 Source distribution
mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)`此時退出容器,可以使用另一宿主終端及逆行驗證`
驗證:
此時我們可以在另一終端CentOS 7-4中進行遠程登錄數據庫操作:
[root@localhost ~]# yum install mysql mysql* -y`此項會默認安裝MariaDB數據庫`[root@localhost ~]# mysql -h 192.168.18.145 -u root -P 32768 -p `進行登錄`
Enter password: #輸入密碼abc123,回車
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.20 Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
MySQL [(none)]>#此時可遠程登陸上CentOS 7-5上的Mysql數據庫