一:Docker容器下载Mysql
1.下载命令
docker pull mysql
使用docker images
检查mysql数据库是否安装好
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配置日志文件
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
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>