一:Docker容器下载Mysql

1.下载命令

docker pull mysql

MySQL mha容器部署 容器安装mysql_redis


使用docker images检查mysql数据库是否安装好

MySQL mha容器部署 容器安装mysql_MySQL mha容器部署_02


2.创建实例并启动

sudo docker run -it -p 3316:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -v /home/mysql/mysql-files:/var/lib/mysql-files/ -e MYSQL_ROOT_PASSWORD=root -d 76152be68449
docker run --name mysql -d -p 3316:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mysql:latest

参数说明
-p 3306:3306
端口映射,将宿主机3306端口与容器3306端口做映射,这样就可以通过宿主机IP+端口访问容器的3306端口了
格式:-p 宿主机端口:容器端口
–name mysql
指定容器名字为mysql,也可以不指定,不指定没有容器名字
** -v /root/mysql/datadir:/var/lib/mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/var/log/mysql
数据容器卷挂载
-v /root/mysql/datadir:/var/lib/mysql:对宿主机数据库目录与容器数据库目录进行映射挂载
-v /root/mysql/conf:/etc/mysql/conf.d:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载
-v /root/mysql/logs:/var/log/mysql:对宿主机数据库日志与容器数据库日志进行映射挂载
-e MYSQL_ROOT_PASSWORD=123456
配置mysql的root账号的密码为123456(可以根据需要自行修改密码)
-d:后台执行
a70d36bc331a :镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过明林docker iamges查看镜像id

3.创建MySQL容器

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

4.卸载mysql容器

docker stop mysql; #mysql是容器名称
docker rm mysql;
docker rmi image_id;

5.启动mysql容器

docker start mysql

二:修复数据库权限不足问题

1.进入mysql容器

docker exec -it mysql /bin/bash  #MySQL是容器名称

2.连接数据库

mysql -uroot -p123456

3.刷新权限

alter user 'root'@'localhost' identified with mysql_native_password by '123456';#这里的password是数据库密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges; #刷新权限

4.退出镜像

exit或者ctrl+D

MySQL mha容器部署 容器安装mysql_mysql_03

三:MySQL配置日志文件

cd  /root/mysql/logs  #进入到此目录下
vi my.cnf   #新建文件

1.复制如下文件到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

2.重启mysql

docker restart mysql

3.进入到mysql容器内部

docker exec -it mysql /bin/bash

4.进入mysql日志文件

cd /var/log/mysql

四:Docker容器下载Redis

1.下载命令

docker pull redis

2.创建实例并启动

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis/conf
docker run -p 6379:6379 --name redis -v /mydata/redis/redis.conf:/etc/redis/redis.conf  -v /mydata/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

参数解释:

-p 6379:6379:把容器内的6379端口映射到宿主机6379端口
-v /mydata/redis/redis.conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /mydata/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化

3.使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis /bin/bash #进入到redis容器
redis-cli   #启动redis
docker exec -it redis redis-cli

五:docker安装Nginx

1.新建nginx文件夹

1)进入到mydata文件夹下

cd mydata

2)新建nginx文件夹

mkdir nginx

MySQL mha容器部署 容器安装mysql_容器_04

2.随便启动一个nginx实例,复制其配置

docker run -p 80:80 --name nginx -d nginx:1.10

3.将容器内的配置文件拷贝到当前目录

docker container cp nginx:/etc/nginx .

4.停止安装的nginx

docker stop nginx
docker rm nginx

5.修改文件名称

将nginx复制到conf里面

mv nginx conf

把这个 conf 移动到/mydata/nginx 下

mv conf nginx/

6.安装nginx

docker run -p 81:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html 
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10

注:将服务器的81端口,映射到docker容器的80端口。

7.测试nginx

1)进入到nginx的HTML文件夹中

cd /mydata/nginx/html

2)编辑html文件

vi index.html

输入:<h1>sysg</h1>