1. Docker介绍
1.1. docker是一种linux容器技术。容器有效的将由单个操作系统挂管理的资源划分到孤立的组中,以便更好的在组之间平衡有冲突的资源使用需求。每个容器内运行一个应用,不同的容器之间相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,资源需求远远低于虚拟机。
优点:
- 能高效地构建应用。
- 能快速的交付和部署
- 高效的资源利用
- 轻松的迁移扩展
- 简单的更新管理
1.2. 容器的发展史:
![18a3a2017822da671e6d26140fa91c5f.png](https://i-blog.csdnimg.cn/blog_migrate/39bca09f454c935b9a85adf9a079989d.jpeg)
![c9b546bcf6cce402c394911e718e8420.png](https://i-blog.csdnimg.cn/blog_migrate/8c3beb2caa0853f118b5d3362c00b389.jpeg)
1.3. Docker容器的运行方式:(三大核心组件)
- 镜像(images):类似虚拟机镜像
- 仓库(Repository):集中存放镜像的地方。每个服务器上可以有多个仓库。
- 容器(containers):镜像的一个运行实例,类似linux系统环境,运行和隔离应用
![7153078f35ffd5f8508e403ab44a0507.png](https://i-blog.csdnimg.cn/blog_migrate/3ff0b064ff52782448ddaa762b06b37e.jpeg)
2. 安装docker
2.1. 先决条件
- 必须是64位CPU架构的计算机,Docker目前不支持32位CPU;
- 运行Linux3.8或更高版本内核,CentOS的内核版本不能低于3.10;
- 内核必须支持一种合适的存储驱动,可以是Device Manager、AUFS、vfs、btrfs、以及默认的驱动Device Mapper中的一个;
- 内核必须支持并开启cgroup和命名空间namespace功能。
2.2. 检查前提条件
- 内核
通过uname命令来检查内核版本信息。 - 检查Device Mapper
ls -l /sys/class/misc/device-mapper
2.3. 安装docker
环境准备:
Kernel 3.10+
(1)检查系统的内核版本,返回的值大于3.10即可
[root@ss30 ~]# uname -r3.10.0-1127.el7.x86_64
(2)使用sudo或root权限的用户登入中端(3)保证apt-get是最新版本的,执行如下命令:
命令:yum update
[root@ss30 ~]# yum update安装docker:
命令:yum -y install docker.io (apt-get install -y docker.io)
用此命令安装的可能不是docker的最新版本,要想安装docker的最新版本可以使用如下命令:
命令:curl -s https://get.docker.com | sh
![579df94fd221414eae262d2bb5e7a4f4.png](https://i-blog.csdnimg.cn/blog_migrate/759e1e0e5a43bf8fec6e825b0b09c318.jpeg)
[root@ss30 redis6.0]# service docker start 或systemctl start docker.service[root@ss30 redis6.0]# ps -ef |grep dockerroot 6966 1 1 19:51 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockroot 7102 1862 0 19:51 pts/0 00:00:00 grep --color=auto docker[root@ss30 redis6.0]# docker version
![002849f144ecebf19498571d685518ee.png](https://i-blog.csdnimg.cn/blog_migrate/fec99dd0d652947e09c8f7372534f9ae.jpeg)
备注:移除Docker
yum -y remove docker-engine
3. MySQL安装部署
3.1. 拉去镜像
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags
下载镜像
[root@ss30 softwares]# docker pull mysql:5.7.30
![47ee336c536aa7c93c954240b6955853.png](https://i-blog.csdnimg.cn/blog_migrate/f3b6016390c7ee7cb89e11976022fd0d.jpeg)
[root@ss30 img]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7.30 a4fdfd462add 9 days ago 448MB
备注:
docker pull [OPTIONS] NAME [:TAG] :此命令的作用是从docker远程的仓库拉取镜像到本地
docker images [OPTIONS] [REPOSITORY[:TAG]] :此命令是来查看我们本机都有哪些镜像,也可以验证我们的pull是否执行成功
查看容器运行情况
[root@ss30 ~]# docker container ls[root@ss30 ~]# docker ps ##列出容器
![538efdd9ba7e3b9d3ba68cccb4d54219.png](https://i-blog.csdnimg.cn/blog_migrate/99d61f330ab9dd31ea9f9891cdfbfdce.jpeg)
备注:
docker ps [OPTIONS]说明:
- -a :显示所有的容器,包括未运行的。
- -f :根据条件过滤显示的内容。
- –format :指定返回值的模板文件。
- -l :显示最近创建的容器。
- -n :列出最近创建的n个容器。
- –no-trunc :不截断输出。
- -q :静默模式,只显示容器编号。
- -s :显示总的文件大小。
3.2. 简单启动 mysql
查看所有container
[root@ss30 ~]# docker images[root@ss30 ~]# docker run -p 3306:3306 --name mysql5730 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.30[root@ss30 ~]# docker container ls
![44a48e8b03bd1a04651cbe3a4ff2bc0d.png](https://i-blog.csdnimg.cn/blog_migrate/71e0b2d540239231c7cfc755fa7a4c21.jpeg)
![2c52bcc3a99841a50569349ab13243ef.png](https://i-blog.csdnimg.cn/blog_migrate/a1a4389c1533dcd4100457b127858d4e.jpeg)
![0e6749fcf98932bc4c3f8c7733cbc760.png](https://i-blog.csdnimg.cn/blog_migrate/c060a51a07d2e6c12f2c2a6cce0584a4.jpeg)
备注:
- –name:为容器指定一个名称,此处命名为mysql5.7
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- -d:后台运行容器,并返回容器ID;
内部映射的端口改成其他端口时候,需要进入docker内 把对应的端口my.cnf进行配置
登录容器:docker exec -it 容器ID bash
docker exec -it b2240680eb53 /bin/bash
![4b58426302bb3195b8962968c43ca427.png](https://i-blog.csdnimg.cn/blog_migrate/c0dccfd4046805badf8924d7ab9bb90f.jpeg)
3.3. 登录mysql
查看所有container
[root@ss30 openssl-1.1.1g]# docker ps -a[root@ss30 openssl-1.1.1g]# docker start fd014d8ed34b ##关闭使用stop命令[root@ss30 openssl-1.1.1g]# docker ps
![dc7f89c6f61ab9b0f9bb769a9b7a15a4.png](https://i-blog.csdnimg.cn/blog_migrate/f80288ef24c3a8190d80c302e242bf13.jpeg)
登录docker之后 登录数据库:
进入mysql容器
[root@ss30 ~]# docker exec -it mysql bashroot@fd014d8ed34b:/#root@fd014d8ed34b:/# mysql -uroot -p123456
3.4. 目录映射
...
✨ 接下来内容请访问原文(https://www.modb.pro/db/29222?YYF)进行查看~
更多数据库相关内容,可访问墨天轮(https://www.modb.pro/?YYF)进行浏览。
![8d42e3e100a9fb07a8f5fbb857eaf601.png](https://i-blog.csdnimg.cn/blog_migrate/b3d1165a546fc92f0663335ba61f9a1e.jpeg)