使用容器可以更快地构建和部署新的应用程序。Docker容器将软件及其依赖项打包成一个标准的软件开发单元,该单元包含了它需要运行的所有东西:代码、运行时、系统工具和库。这保证了你的应用程序将始终运行相同的操作,并使协作变得像共享容器映像一样简单。下面我们来介绍一下如何在CentOS中安装和使用Docker。
一、安装 CentOS
如何安装 CentOS 可以参考使用 Virtual BOX 和 vagrant 创建虚拟机这篇文章。
二、在 CentOS 中安装Docker
1、首先卸载旧的安装版本(新机器可以跳过这一步)
Docker的旧版本被称为Docker
或Docker -engine
。如果安装了它们,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装所需要的包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
安装完成后:
3、设置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4、安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
安装完成后:
5、启动 docker
sudo systemctl start docker
6、查看docker版本
docker -v
7、查看docker中的镜像
docker images #提示需要权限,可以使用 sudo docker images
8、设置 docker 开机自启动
因为docker不是开机自启的,如果我们经常使用的话,每一次开机都都需要手动启动,这个时候可以设置docker为开机自启。
sudo systemctl enable docker
三、设置阿里云镜像加速器
因为docker自己提供的镜像大多在国外,服务访问较慢,因此为了提高镜像的访问速度,我们可以来设置使用阿里云的镜像加速服务。如果自己有阿里云,可以查看自己的加速服务,具体查看方式参考此文:查看阿里云加速服务
创建docker目录:
sudo mkdir -p /etc/docker
配置镜像加速器地址:
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
重启docker守护和服务:
sudo systemctl daemon-reload && sudo systemctl restart docker
注意:本加速只针对CentOS系统
四、docker安装MySQL
1、安装MySQL镜像
在docker仓库中找到我们需要安装的软件,执行
sudo docker pull xxx:a.b
即可下载安装我们需要的软件。例如我们安装mysql的5.7版本,则使用如下命令:
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。
百度云网盘:https://pan.baidu.com/s/1eT1wjE3UwHYrRDVe5fio6A
提取码:4v94
安装完成后输入我们的redis服务所在地址就可以连接使用了:
更多redie配置和资料请访问官方文档
六、设置Redis和MySQL镜像自动启动
使用管理员权限在linux命令行中进行如下设置,就可以在每次虚拟器启动时让mysql和redis随docker启动而启动。
docker update redis --restart=always
docker update mysql --restart=always
参考资料:
https://docs.docker.com/install/linux/docker-ce/centos/
https://redis.io/documentation
https://dev.mysql.com/doc/