Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
引用自 阮一峰 Docker入门教程
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
PS.由于docker版本更新较快,在学习时,步骤已经与视频教程过程稍有不同,具体步骤以官方文档为准
首先访问Docker官方文档
点击下载和安装
选择Linux版本
选择对应的linux发行版本,这里选择CentOS
首先执行卸载命令,卸载之前系统上安装过的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
注意,使用sudo,默认登陆的是vagrant用户,无法运行相应命令
卸载完成后,首先安装相关依赖程序,并配置docker的安装仓库地址
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
文档下面有一些可选安装项的配置,暂时跳过
下面执行命令安装docker的引擎和客户端,本人联通网络环境,没经过配置的情况下,会自动选择阿里云的镜像下载,所以安装较快
sudo yum install docker-ce docker-ce-cli containerd.io
安装过程比较慢,中间要手动输入两次y确认安装,显示Complete安装完成
sudo systemctl start docker
启动docker,执行docker -v可以查看当前安装的版本
执行命令
sudo systemctl enable docker
首先访问阿里云官网,点击右上角登陆,登陆需要使用支付宝或淘宝扫码,第一次登陆需要填写一些用户信息,使用或购买过阿里云服务器的用户可以直接正常登陆
登陆后点击右上角控制台
进入控制台后,点击左上角三条线展开
选择容器服务下的容器镜像服务
进入后,选择左面的 镜像工具-镜像加速器
选择对应的系统,根据文档提示进行操作,执行下面的命令开启镜像加速
命令为在docker的配置文件夹下建立配置文件,配置文件中,记录了阿里云镜像的地址,之后执行docker的重启命令,生效配置
之后下载一些docker的容器,就会通过阿里云的镜像加速,提升下载速度
首先访问Docker hub 仓库 寻找对应的镜像
搜索mysql后,出现的带有Offical Image标志的镜像,就是mysql官方的镜像,点击进入后,点击tag,可以查看对应的镜像版本,以及相应的安装命令
本次需要安装mysql 5.7版本,所以命令为
docker pull mysql:5.7
注意要使用root权限执行
直接执行 sudo docker pull mysql:5.7
或者 su root
输入密码(vagrant默认密码为vagrant)
进入root用户后再执行
docker pull mysql:5.7
docker会自动开始下载安装对应的镜像
注意后续执行命令报权限错误时,请确认是否在root用户,或命令前是否加了sudo,后面不再赘述
安装完成后,执行
docker images
可以查看已经安装的镜像的名字、版本号、id等信息
安装成功后,执行命令,后台启动mysql
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
docker启动的命令为 docker run -p 参数指定运行时的端口映射,当前命令 -p 3306:3306 即把docker容器内的mysql运行的3306端口,映射到了当前centos上的3306端口
–name 参数是给当前运行的虚拟环境进行了命名,当前命名为mysql
-v 参数是将虚拟环境中的目录进行了挂载,将docker虚拟环境中的目录,挂载到了当前centos环境中的目录,目录不存在时会自动创建。 /mydata/mysql/log:/var/log/mysql 即将虚拟环境中的/var/log/mysql目录挂在到了centos下的/mydata/mysql/log下,三条挂载参数分别将 日志、配置、数据仓库挂载到了本机的目录下。
-e参数,指定了执行时的环境变量,这里指定了mysql root用户的密码,暂时默认也为root(可随意修改,此处时防止后期忘了密码设置的默认密码)
最后-d参数,设定了让服务后台运行,前台不打印出运行信息,最后跟着镜像名称 mysql:5.7 。每一行结尾的\反斜杠表示换行的意思,否侧就要写很长一行的启动命令。
执行后mysql服务就启动了。此时 执行 docker ps 命令,可以查看当前启动的镜像服务
此时使用数据库连接工具即可成功连接到数据库
数据库地址为上篇笔记中配置的IP地址,密码为自己设置的密码。
连接后,还有一些后续的配置需要进行配置,cd进入/mydata/mysql/conf/目录下
执行
vi my.cnf
按下键盘的 insert 或者 i 键 进入插入模式,将下面内容复制进文件
[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
退出保存
配置文件主要进行了字符集相关的设置,设置为了utf-8
执行命令重启mysql容器,使配置生效
docker restart mysql
至此,完成了mysql环境的安装
这里直接执行
docker pull redis
下载安装最新版的redis镜像,稍等执行下载并安装完成
后面执行启动命令时,需要将redis的相关文件进行挂载,其中有一个配置文件,需要先手动创建,否则容易将配置文件挂载成一个目录
执行命令新建一个目录,并在目录下新建一个redis的配置文件
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
命令的具体参数的意义不在赘述,启动后,执行docker ps 查看镜像是否已经启动
如果此处看不到redis的服务,可能是因为某些命令输入错了,导致启动失败
输入 docker ps -a 查看全部镜像,记住失败的镜像对应的id或者name,
执行docker rm 对应的name 即可移除启动失败的镜像,检查启动命令修改并尝试重新启动。
此时已经可以尝试使用数据库工具进行连接了
此时,可能redis没有默认开启持久化,即数据存在内存,重启docker镜像服务后,数据会丢失,需要修改相关配置文件,重新启动
vi /mydata/redis/conf/redis.conf
在其中添加一句
appendonly yes
保存并退出,之后执行重启命令
docker restart redis
redis的安装就到此结束了