一、 简介
为什么会有Docker的出现?
一款产品从开发到上线,从操作系统到运行环境,再到应用配置。作为开发和运维之间的协作我们需要关心很多东西,特别是各种版本迭代之后,不同版本环境的兼容,对运维人员都是考验。环境安装如此麻烦,换一台机器就要重来一次,费时费力。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除协作编码时”在我的机器上可以正常工作”的问题。
Docker镜像的设计,使得Docker得以打破过去“程序即应用”的观念。通过镜像将除作业系统核心外,运作应用所需要的系统环境,由下而上打包,达到应用程序跨平台间的无缝隙运作。
“Build ship run any App anyWhere”
之前的虚拟机:占用资源多(模拟硬件)、冗余步骤多、启动慢
二、Centos7安装Docker
2.1 安装
1、卸载之前的docker
$ 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
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开机自启动
sudo systemctl enable docker
2.2 配置阿里云镜像加速
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?spm=5176.12901015.0.i12901015.7fcc525cEnXwL2
进入这个网址,完成配置就可以了
三、docker安装mysql
1、下载镜像文件
sudo docker pull mysql:5.7
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
3、修改mysql的配置文件
进入到映射的文件夹 /mydata/mysql/conf
创建文件my.cnf,并添加如下配置
vi 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
4、重启mysql
docker restart mysql
5、设置mysql的容器随docker启动而自启动
sudo docker update mysql --restart=always
四、docker安装redis
1、下载redis镜像文件
docker pull redis:3.0.5
2、创建实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:3.0.5 redis-server /etc/redis/redis.conf
3、修改redis配置文件,使其可以持久化
编辑redis.conf
appendonly yes
4、重启redis
docker restart redis
5、设置redis的容器随docker启动而自启动
sudo docker update redis--restart=always