一、Docker的介绍
1.为什么要用docker
软件开发最大的麻烦事之一:环境配置问题
每当在Linux中安装mysql、redis等开发环境时,往往需要先下载安装包、解压、编译、安装;操作太过复杂,而且版本不兼容也是一大问题
docker的用途:
- 提供一次性的环境。
- 提供弹性的云服务。
- 组建微服务架构。
2.什么是docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,各个容器之间互不干扰
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
官方安装地址:https://docs.docker.com/engine/install/centos/
GitHub地址:https://github.com/docker
二、Docker的安装
Docker官方安装文档:https://docs.docker.com/engine/install/centos/
去掉老的版本
设置仓库:
安装docker
安装完毕:
运行docker
查看docker的版本号和后台进程
设置开机自启动: sudo systemctl enable docker
查看docker镜像:docker images
此时是没有任何镜像的
一般官网的镜像下载速度比较慢,所以我们切换阿里云镜像
登录阿里云,第一次登录需要进行注册;https://cn.aliyun.com/
进入控制台
配置镜像即可
至此docker的阿里云镜像安装完成。
三、docker安装mysql
下载镜像文件 使用`docker pull mysql:5.7`
查看镜像是否下载
docker run -d -p 3306:3306 --name mysql
-v /mysqldata/mysql/log:/var/log/mysql
-v /mysqldata/mysql/data:/var/lib/mysql
-v /mysqldata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=root
mysql:5.7
上述命令的含义
docker run
:在docker中启动一个容器实例
-d
:该容器在后台运行
-p 3306:3306
:容器与主机映射端口为,主机3306,容器3306
--name mysql
:容器运行后的名称
-v /mysqldata/mysql/log:/var/log/mysql
:将容器/var/log/mysql目录下的数据,备份到主机的 /mysqldata/mysql/log目录下
-v /mysqldata/mysql/data:/var/lib/mysql
:将容器/var/lib/mysql目录下的数据,备份到主机的 /mysqldata/mysql/data目录下
-v /mysqldata/mysql/conf:/etc/mysql
:将容器/etc/mysql目录下的数据,备份到主机的 mysqldata/mysql/conf目录下
-e MYSQL_ROOT_PASSWORD=root
:设置当前mysql实例的密码为root
mysql:5.7
:需要运行的容器名称以及版本号
将容器中的数据备份后,即使mySQL的容器实例被删除,那么再次重启mysql容器后,数据将会自动从主机加载到容器中
通过命令:`docker ps` 查看正在运行的容器
进入容器内部docker exec -it mysql /bin/bash
可以看出容器是一个完整的linux
查看mysql所装的目录 `whereis mysql`
设置mysql的字符编码
[client]
default_character_set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
重启docker容器 `docker restart mysql `
容器中查询mysql数据库
四、docker安装redis
通过docker pull redis
安装redis镜像
查看镜像是否安装成功
因为docker创建的redis实例中并没有redis.conf文件,所以需要提前创建
创建redis实例
旧版 docker run -p 6379:6379 --name redis
-v /mysqldata/redis/data:/data
-v /mysqldata/redis/conf/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf
新版 docker run -p 6379:6379 --name redis
-v /mysqldata/redis/data:/data
-d redis redis-server
使用redis镜像执行redis -cli命令连接
旧版的需要在redis.conf中设置持久化配置 appendonly yes
新版的redis默认支持持久化