使用容器可以更快地构建和部署新的应用程序。Docker容器将软件及其依赖项打包成一个标准的软件开发单元,该单元包含了它需要运行的所有东西:代码、运行时、系统工具和库。这保证了你的应用程序将始终运行相同的操作,并使协作变得像共享容器映像一样简单。下面我们来介绍一下如何在CentOS中安装和使用Docker。
sudo docker pull mysql:5.7
如果直接使用sudo docker pull mysql
命令,则表示下载安装的是最新版本的软件。
2、创建实例并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明: -p 3306:3306:将容器(docker容器中)的3306端口映射到主机(docker所在的linux虚拟机)的3306端口 -v/mydata/mysql/conf/etc/mysql:将配置文件夹挂载到主机 -v/mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 -v/mydata/mysql/data:/var/ib/mysql/:将配置文件夹挂载到主机 -e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码
使用 docker ps
来查看当前正在运行容器,可以看到mysql已经在运行了
使用数据库管理工具来测试连接一下,可以看到是可以正常访问的
3、配置MySQL
vi /mydata/mysql/conf/my.cnf
[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 restart mysql
进入mysql容器内,可以看到之前配置的信息
docker exec -it mysql /bin/bash
五、docker安装Redis
1、下载Redis镜像
使用docker pull redis
命令来安装最新的Redis
docker pull redis
3、创建实例并启动
在linux虚拟机中创建Redis配置目录,并创建Redis配置文件:
# mkdir -p:递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
mkdir -p /mydata/redis/conf
# 创建配置文件
touch /mydata/redis/conf/redis.conf
配置Redis镜像:
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
至此,redis就安装完成了。
要使用redis,可以在命令行中直接使用docker exec -it redis redis-cli
命令就可以进行redis的命令行控制界面。
虽然redis安装好了,但是有一个问题,就是redis并没有启用持久化操作,因此我们存放在redis中的数据,只要redis被重启就会消失,因此我们还需要开启redis的AOF
持久化功能。
进入redis的conf文件
添加appendonly yes
,保存并退出。
修改完之后需要使用docker restart redis
命令来重启redis镜像使之生效。
为了更方便的使用redis,我们一般使用redis的可视化工具Redis Desktop Manager
来连接redis。
安装完成后输入我们的redis服务所在地址就可以连接使用了:
六、设置Redis和MySQL镜像自动启动
使用管理员权限在linux命令行中进行如下设置,就可以在每次虚拟器启动时让mysql和redis随docker启动而启动。
docker update redis --restart=always
docker update mysql --restart=always