centOS7+docker+Mysql5.7.22

1.安装centOS7

  • 下载安装VMwarea
https://www.jianshu.com/p/552179808ebf
  • 下载CentOS7
http://mirror.bit.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
  • 安装CentOS7
https://blog.csdn.net/babyxue/article/details/80970526
  • 开启ssh服务 为了使用远程连接工具例如xshell、SecureFX 8.1、SecureCRT 8.1
①.查看是否有SSH安装 
注:若为非root用户登录,输入执行某些命权限不够时需加sudo
	rpm -qa | grep ssh

在这里插入图片描述

②.若没有则安装
	yum install openssh-server
③.开放22端口
在ssh配置文件里进行配置 : 
vim /etc/ssh/sshd_config

在这里插入图片描述

用esc+:wq 保存退出
③.开启ssh服务
	/bin/systemctl start sshd.service 
④.检查ssh服务是否开启
	ps -e | grep sshd 

在这里插入图片描述

⑤.检查22端口是否开启
	netstat -anpt | grep 22
	注意:若提示没有netstat 命令则 使用:yum install net-tools 进行安装
	参考文章:https://blog.csdn.net/ASN_forever/article/details/80931799
	

在这里插入图片描述

  • 设置ssh开启自启动
systemctl enable sshd.service
或chkconfig sshd on
  • 关闭防火墙(为了使用远程工具连接)
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service 
参考:https://blog.csdn.net/ytangdigl/article/details/79796961

  • 关闭selinux (为了使用远程工具连接)
进入到/etc/selinux/config文件
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
  • 使用SecureCRT 远程连接(待完成)
参考:
https://blog.csdn.net/u011781521/article/details/53846536
https://blog.csdn.net/qq_38880651/article/details/82460600
https://blog.csdn.net/heshengfu1211/article/details/87828523

2.安装docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

  • 通过 uname -r 命令查看你当前的内核版本
uname -r
  • 使用 root 权限登录 Centos。确保 yum 包更新到最新。
 sudo yum update
  • 卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker  docker-common docker-selinux docker-engine
  • 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
 sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
  • 安装docker
sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版19.03.1
或指定安装版本:sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce
  • 启动并加入开机启动
sudo systemctl start docker   #启动
sudo systemctl enable docker  #开机启动
  • 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
 docker version
参考:https://blog.csdn.net/lu1171901273/article/details/94217503

3.安装mysql

  • 搜索docker镜像(可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的)
docker search mysql
  • 拉取docker的mysql镜像(如果想指定版本号,需要到https://hub.docker.com/_/mysql?tab=tags查看版本号)
docker pull mysql:5.7.27
  • 启动安装mysql
docker run -d mysql:5.7.27 -p 3306:3306 -e MYSQL_USER="root" -e MYSQL_PASSWORD="root" 
-e MYSQL_ROOT_PASSWORD="root" --name mysql3306
 mysql:5.7.22 --character-set-server=utf8 --collation-server=utf8_bin
参数说明:
-d 表示容器在后台运行
-p 53306:3306:将容器的3306端口映射到主机的3306端口;
-e MYSQL_PASSWORD="root":设置添加的用户密码
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码;
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码;
--name 给容器命名,mysql3306;
--character-set-server=utf8:设置字符集为utf8
--collation-server=utf8_bin:设置字符比较规则为utf8_bin
注意事项:-d 后面是mysql镜像,一定要指定镜像版本号,也就是拉取的镜像版本
  • 如果还是不能连接,是局域网的问题,可以直接进入实例操作
grant all privileges on *.* to root@"%" identified by "root" with grant option;
  • 进入容器
docker exec -it mysql bash
  • 登录mysql验证是否安装成功
mysql -u root -p
  • 挂载外部配置和数据安装

  • 创建目录和配置文件my.cnf

创建外部挂载目录
mkdir /docker
mkdir /docker/mysql
mkdir /docker/mysql/conf
mkdir /docker/mysql/data
 
创建my.cnf配置文件
touch /docker/mysql/conf/my.cnf
 
my.cnf添加如下内容:
[mysql]
default-character-set=utf8
[mysqld]
port = 3306
basedir=/docker/mysql
datadir=/docker/mysql/data
max_connections=10000
innodb_buffer_pool_size=64M
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_allowed_packet = 1024M
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
  • 创建容器,并后台启动
①.由于刚刚安装的mysql并运行登录,我们只是用来验证成功,还没挂载。
但我这里使用的是同一个容器,已经存在了。所以要先将存在的容器停止并删除。

查看所有容器,包括停止的:
docker ps -a
将容器退出:
docker stop [NAME]/[CONTAINER ID] 例如:docker stop se34fds50fsf
不能够删除一个正在运行的容器,会报错。需要先停止容器:
docker rm [NAME]/[CONTAINER ID] 例如:docker rm  se34fds50fsf
②.创建容器,并后台启动(这个是使用挂载外部文件的容器)
docker run -d -p 3306:3306 --privileged=true
 -v /docker/mysql/conf/my.cnf:/etc/mysql/my.cnf 
 -v /docker/mysql/data:/var/lib/mysql 
 -e MYSQL_ROOT_PASSWORD=root
  --name mysql3306 mysql:5.7.27
  
  参数说明:

--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /docker/mysql/conf/my.cnf:/etc/my.cnf:映射配置文件
-v /docker/mysql/data:/var/lib/mysql:映射数据目录
  • 参考文章:
https://blog.csdn.net/woniu211111/article/details/80968154
https://blog.csdn.net/lu1171901273/article/details/94217503

发布了18 篇原创文章 · 获赞 2 · 访问量 652

猜你喜欢

转载自blog.csdn.net/qq_34699995/article/details/99692703