远程连接VritualBox(linux系统)docker中的mysql5.7
一:virtualBox中安装Linux7 (vagrant)
- 下载virtualBox 并安装
下载地址:https://www.virtualbox.org/wiki/Downloads
- 下载Vagrant 并安装
下载地址:https://www.vagrantup.com/downloads
- 可以去 命令行使用 vagrant 命令了 =》下载centos7镜像
vagrant init centos/7
提示
vagrant up (如果下载太太慢,或者下载超时失败) 自己去下载 centos-7-x86-Vagrant.VirtualBox.box 我百度网盘里面有,实在找不到该驱动,可以免费给
- 在下载文件的当前目录下cmd
vagrant box add centos/7 centos-7-x86-Vagrant.VirtualBox.box
- 连接虚拟机
vagrant ssh
- 连接成功后(为了方便 xshell 与虚拟机的连接)
$ su root #以root角色权限修改
password vagrant
Vi /etc/ssh/sshd_config
修改参数 PasswordAutentication yes
然后用Xshell进行远程连接即可
二:linux中安装docker
- 卸载原本自带的docker
$ yum remove docker docker-client docker-client-latest docker-common docker-latest \
> docker-latest-logrotate docker-logrotate docker-engine
- 下载docker utils
$ yum install -y yum-utils
- 设置docker仓库地址
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker 引擎
$ yum install docker-ce docker-ce-cli containerd.io -y
- 启动docker
$ systemctl start docker
- docker 常用命令
$ docker images 查看镜像
$ docker -v 查看版本
$ systemctl enable docker 开机自启动 docker
- docker设置 aliyun 镜像加快下载速度
创建文件夹:
$ mkdir -p /etc/docker
输入命令(添加镜像)
$ tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirros": ["自己的阿里云镜像文件"]
> }
> EOF
重启文件,重启docker
$ systemctl daemon-reload
$ systemctl restart docker
三:docker启动mysql实例
- docker安装mysql
$ docker pull mysql:5.7
- 普通创建mysql实例的命令 (常用)
docker run --name mysql --restart=always -p 3306:3306 -v /www/mysql/conf.d:/etc/mysql/conf.d -v /www/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d -v /www/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
--restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。
--restart的参数说明
always:无论容器的退出代码是什么,Docker都会自动重启该容器。
on-failure:只有当容器的退出代码为非0值的时候才会自动重启。另外,该参数还接受一个可选的重启次数参数,`--restart=on-fialure:5`表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。
-v 容器内的 /var/lib/mysql 在宿主机上 /www/mysql/datadir 做映射
-e MYSQL_ROOT_PASSWORD 初始密码
-p 将宿主机3306的端口映射到容器3306端口
- 使用自定义mysql实例的命令
$ docker run -p 3306:3306 --name mysql -d --restart=always --network xueden-network -v \
> /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/data \
> -e MYSQL_ROOT_PASSWORD=root mysql:5.7
- 查看启动的镜像文件
docker ps -a
提示 远程连接确认防火墙已关闭(关闭linux系统的防火前 使用本地的sqlyog 创建连接)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)