admin管理员组文章数量:1651581
DOCKER 安装MYSQL
没错,叫我mysql安装人~,docker这种专业的软件当然是可以安装mysql的,这不得来安装一把。
DOCKER 简介
在VM的虚拟环境下对于硬件是进行单独虚拟的,资源消耗十分大。我们需要一种消费资源小但同样可以实现虚拟化的产品。此时docker便被提上日程,其采用半虚拟化的方式,使用较小的资源占用实现了先前的虚拟操作。
举例来说,就是与租房子一个原理,3000块租个三室一厅一卫就是全虚拟化,1000块和另外两位小伙伴合租这间房子同样可以满足需求,这就是半虚拟化。
对比二者的工作模式:
Docker 有三个关键点:构建,运输,运行。
Docker 存在的意图是让你把各种语言编写的程序应用以带有普适性的形式打包好,你只要拿到打包好的东西,可以忽略程序本身依赖的环境或者开发的语言,直接使用 Docker 便可以运行起来。在这个实际意义之上,最重要的是 Docker 提供了容器技术来隔离多个打包的应用或者服务之间的相互影响,同时由于打包的东西具有普适性,那么在应用规模的层面上也很便于扩展。
对于运维的管理人员,Docker 提供了一种可移植的标准化部署流程,对于开发者,Docker 提供了一种开发环境的管理方法。
DOCKER安装
Docker CE 是免费的 Docker 产品的新名称,Docker CE 包含了完整的 Docker 平台,非常适合开发人员和运维团队构建容器 APP。
1、获取安装包
https://download.docker/linux/centos/7/x86_64/stable/Packages/
2、将下载下来的rpm包上传至服务器,进行安装
[root@blackstone batman]# ll
total 41644
-rw-rw-r--. 1 batman batman 42643244 Oct 15 22:26 docker-ce-18.06.0.ce-3.el7.x86_64.rpm
[root@blackstone batman]# yum install docker-ce-18.06.0.ce-3.el7.x86_64.rpm -y
3、启动docker服务
#启动停止与重启
systemctl start docker
systemctl stop docker
systemctl restart docker
#状态查看
systemctl status docker
DOCKER的镜像操作
概念解释,这里的镜像可以片面的理解为一个环境包,有了它就可以复现出其他人的工作环境。在不同的环境中可以运行对应的程序。从而使得程序解决了环境部署的难题。
https://hub.docker/这个网站上有docker支持的所有镜像。这个镜像体系的结构如下图:
1、配置镜像加速器
原有的docker镜像服务器势必在国外,你下个镜像还得出趟国,好在阿里云帮我们解决了这个问题,可以登陆阿里云自行获取(我看那个混蛋要拿我的加速链接)
加红框的位置就是我们要编辑进配置文件的内容。每个人的不一样
vim /etc/docker/daemon.json
#插入以下字符
{
"registry-mirrors": ["https://l25fa4h8.mirror.aliyuncs"]
}
#刷新守护进程
systemctl daemon-reload
#重启服务载入配置文件
systemctl restart docker
#检测安装成功情况
[root@blackstone batman]# docker info
看到这个就说明加速器写进去了
2、镜像的基本操作
#搜索镜像
docker search name
#l拉取镜像
docker pull name
#导入或者加载镜像
docker load -i mysql.tar
#docker load -i centos7.tar
#docker load -i java8.tar
#docker load -i tomcat.tar
#docker load -i nginx.tar
#查看本地镜像
docker images
#保存镜像---这里是把本地的镜像保存出来便于分享
docker save -o destion.tar source
#删除镜像
#单个删除
docker rmi -f openjdk:latest
docker rmi -f 040bdb29ab37
#删除所有
docker rmi -f $(docker images)
示例练习:拉取mysql5.7版本并且再给人删掉
[root@blackstone batman]# docker pull mysql:5.7
[root@blackstone batman]# docker images
[root@blackstone batman]# docker rmi -f mysql:5.7
DOCKER的容器操作
容器其实就是docker里面可以理解为虚拟实体的存在,我们现在的逻辑图如下:
1、创建容器
#临时创建---仅仅运行一次
docker run kriation/centos7 /bin/echo 'hello dashuaibi'
#永久创建---不进行销毁则一直存在
docker run -it --name=mycentos kriation/centos7 /bin/bash
#查看正在运行的容器
docker ps -a
示例:演示两种容器创建模式
[root@blackstone batman]# docker run kriation/centos7 /bin/echo 'hello dashuaibi'
hello dashuaibi
[root@blackstone batman]# docker run -it --name=mycentos kriation/centos7 /bin/bash
2、容器的启停进出
#容器启停
docker stop 容器的id
docker start 容器的id
docker restart 容器的id
#容器进出
#入
docker exec -it 5c0447c5d6ed /bin/bash
#出
exit
#容器删除
docker rm -f 容器的id
docker rm -f $(docker ps -a -q)
#查看容器的IP地址---过滤输出容器的ip地址:
docker inspect --format='{{.NetworkSettings.IPAddress}}' jdk1(容器的名称)
注:容器在初次创建之后,需要启动才能持续运行,临时程序无法启动,用完一次记得删掉
docker安装mysql
终于进入正题了,我们接下来使用docker安装mysql并进行测试。
#1.拉取mysql5.7的镜像
docker pull mysql:5.7
#2.创建容器
[root@blackstone ~]# docker run -di --name=mysqldb -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE='xinjian' mysql:5.7
参数说明:
-p 3307:3306 其中虚机外放端口为3307,容器端口为3306
-e MYSQL_ROOT_PASSWORD=123456 设置初始密码为123456
-e MYSQL_DATABASE='xinjian' 初始创建数据库xinjian
#3.添加防火墙策略,从本机(PC)访问
[root@blackstone ~]# firewall-cmd --list-all
[root@blackstone ~]# firewall-cmd --add-port=3307/tcp --permanent
[root@blackstone ~]# firewall-cmd --reload
[root@blackstone ~]# firewall-cmd --list-all
访问逻辑:容器的3306被映射到虚拟centos的3307端口,被我们在本地远程连接上访问。
测试:
版权声明:本文标题:DOCKER安装MYSQL 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729564843a1206457.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论