本文以mysql 5.6为例进行操作,新手操作前注意看下最后。

首先,下载mysql的rpm文件,主要包含3个rpm包:MySQL-client-5.6.41-1.el7.x86_64.rpm, MySQL-devel-5.6.41-1.el7.x86_64.rpm, MySQL-server-5.6.41-1.el7.x86_64.rpm

官网下载这3个包,下载方式放4张图:

docker rpm离线安装部署 docker rpm 安装_端口映射


docker rpm离线安装部署 docker rpm 安装_docker rpm离线安装部署_02


docker rpm离线安装部署 docker rpm 安装_centos7_03


docker rpm离线安装部署 docker rpm 安装_docker rpm离线安装部署_04


到这里,安装mysql的3个文件就已经下载下来了。1、复制安装包,下面的mysql_master是我的docker容器名称

# docker cp 本机路径 docker容器路径(系统=》docker的容器)

#docker cp /source/MySQL-server-5.6.41-1.el7.x86_64.rpm mysql_master:/root/

docker rpm离线安装部署 docker rpm 安装_centos7_05


下面从第2点开始进入docker容器中操作

2、安装mysql依赖

yum install -y perl perl-Module-Build net-tools autoconf libaio numactl-libs

3、安装mysql下面3条命令都要执行

rpm -ivh /root/MySQL-server-5.6.41-1.el7.x86_64.rpm

rpm -ivh /root/MySQL-client-5.6.41-1.el7.x86_64.rpm

rpm -ivh /root/MySQL-devel-5.6.41-1.el7.x86_64.rpm

4、查看mysql登录密码(这个文件应该与rpm安装包同一目录下)

cat /root/.mysql_secret

docker rpm离线安装部署 docker rpm 安装_MySQL_06


5、启动mysql

systemctl start mysql

6、登录mysql 注意看命令,-p与密码之间是没有空格的!!!

mysql -uroot -p _6sZdMfn4M1cNktQ

7、修改密码,注意分号

set password = password(‘你的密码’);

8、使用

user mysql

9、远程登录授权,第二个root是我的密码,下面2条指令都需执行

grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;

flush privileges;

上面第一个命令不能直接复制,因为*看不到,单引号也不能复制,直接上图:

docker rpm离线安装部署 docker rpm 安装_docker rpm离线安装部署_07


10、修改mysql端口

/ect/my.cnf 这个文件是不存在的,所以:

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

然后修改my.cnf,这个文件里的内容全部注释起来的,只需要加个

port=3307 就行。因为我上面映射的端口是3307,所以我这里用3307

11、连接navicat。这里可以顺利连接啦。如果是阿里云或者其他云服务器,要开端口,关防火墙之类的。使用的是他们对外的ip,这是重点,不要用对内的ip。

注意:在创建容器的时候一定要进行端口映射,方便后续外部访问容器内的应用。这里举个栗子:
docker run -tid -p 3307:3307 3db94df3e006 /usr/sbin/init
说明:3307:3307 是本地端口与容器端口映射,端口后面的字符串是镜像id,我的是centos7镜像 , -p就是进行端口映射。run后面更详细的参数说明见下链接:https://linuxwiki.github.io/Services/Docker.html

补充: 也可以给对运行中的容器进行端口映射:
例:将容器的8000端口映射到docker主机的8001端口
命令: iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.2:8000