01谷粒商城Linux安装docker、redis

docker基本知识

  • 每个docker都相当于一个小的linux,每个容器都是一个完整的运行环境

安装docker依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置阿里云镜像源

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker引擎、客户端、容器

sudo yum install docker-ce docker-ce-cli containerd.io

启动 Docker

//设置docker开机自启
sudo systemctl enable docker
//启动docker
sudo systemctl start docker
//重启docker
sudo service docker restart

检查Docker

docker -v

查看docker下载那些镜像

//如权限不够加上sudo(超级管理员)
sudo docker images

 配置阿里云镜像加速

//(第一条命令) 创建目录
sudo mkdir -p /etc/docker
//(第二条命令)配置镜像加速器地址
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://amnron55.mirror.aliyuncs.com"]
}
EOF
// 重启docker后台线程
sudo systemctl daemon-reload
//重启docker服务
sudo systemctl restart docker

以后使用docker下载的所有的镜像都是使用阿里云镜像下载,比较快

使用docker下载mysql5.7

sudo docker pull mysql:5.7
  • 检查是否下载成功
sudo docker images
  • 挂载mysql配置的目录(注意一起执行)(如果之前Linux安装了mysql导致linux的3306端口已经被占用,则需要将3306端口修改成其他的,过着修改之前的mysql端口)
docker run -p 3306:3306 --name mysql \
--restart=always \
--privileged=true \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=lby \
-d mysql:5.7
  • 修改之前linux安装的mysql端口号(非按安装步骤)
// 使用vi编辑器将linux原本安装的mysql的端口号修改成其他的
vi /etc/my.cnf
//重启mysql
/etc/init.d/mysqld restart
  • 删除docker中的容器(不是安装过程当中的步骤)
docker rm 容器的id

解析:(将容器内部的一些配置,映射到Linux上,相当于把容器中安装mysql的配置在Linux上的制定文件夹创建了一个快捷方式,修改Linux上的文件,等于修改了mysql的文件)

  1. -v:目录挂载,-e:在启动容器的时候给mysql设置一些参数,-d:以后台方式运行,指定以那个镜像启动mysql
  2. docker run -p 3306:3306 --name mysql :将容器的3306端口映射到Linux服务器的3306端口,并将容器起一个名字
  3. -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
  4. -v /mydata/mysql/data:/var/lib/mysql:将mysql持久化的数据文件挂载到Linux主机
  5. -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
  6. -e MYSQL_ROOT_PASSWORD=lby:设置root用户密码为lby
  • 查看docker中的容器所有正在运行的容器
docker ps
  • 查看docker中的容器所有容器(包括未运行的)
docker ps -a
  • 查看docker容器的日志
//首先使用docker ps -a 查看容器,然后复制容器的container id
docker logs 18677843114d
  • docker 停止容器
docker stop 容器的id
  •  使用远程连接工具连接mysql
  • 进入docker下的mysql容器
// 进入mysql容器并使用控制台
docker exec -it mysql /bin/bash
//结果,通过结果发现,容器内部的目录和linux的相似,说明容器就相当于小型的Linux
root@18677843114d:/# ls
bin  boot  dev	docker-entrypoint-initdb.d  entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
  • 查看mysql安装在容器的位置
root@18677843114d:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
  • 退出容器
exit
  • 查看Linux挂载的docker安装的mysql相关文件
[root@iZ2zehx0enix3k2e49guqoZ log]# cd /mydata/mysql/
[root@iZ2zehx0enix3k2e49guqoZ mysql]# ls
conf  data  log
  1. 以后想要查看docker安装的mysql容器的配置或者修改文件,就无需进入docker容器内部修改,直接在Linux上映射的文件就可以直接查看或者修改了
  • 修改docker容器中挂载在外部的mysql的配置
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
init_connect='SET collation_connection = utf8_unicode_cli'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
// 已经挂载成功了
[root@iZ2zehx0enix3k2e49guqoZ conf]# docker exec -it mysql bash
root@fbfd14e7a2ff:/# cd /
root@fbfd14e7a2ff:/# ls
bin  boot  dev	docker-entrypoint-initdb.d  entrypoint.sh  etc	home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@fbfd14e7a2ff:/# cd etc/mysql/
root@fbfd14e7a2ff:/etc/mysql# ls
my.cnf
  • 设置docker下的mysql自动启动
docker update mysql --restart=always

docker安装Redis

  • 下载redis镜像
docker pull redis
  • 创建redis配置文件夹
mkdir -p /mydata/redis/conf/
  •  创建redis配置文件(不创建文件夹,linux会把redis.conf当成目录,挂载不上)
touch /mydata/redis/conf/redis.conf
  • 启动redis并挂载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客户端e
docker exec -it redis redis-cli
  • 持久化redis(redis数据存在内存中,如果不持久化,退出redis之后,就获取不到reids存的值,所以需要进行在外部的redis挂载目录进行持久化配置)
//进入Linux挂载的redis文件夹,使用vi编辑reids.conf配置文件,输入以下命令

appendonly yes
  • 测试是否持久化成功
//连接redis客户端
docker exec -it redis redis-cli
// 设置值
set a "a"
//获取值
get a
//退出redis
exit
//重启redis
docker restart redis
//连接redis客户端
docker exec -it redis redis-cli
//获取值(发现配置成功)
127.0.0.1:6379> get a
"a"
// 配置redis密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass lby
OK
  • 在docker中查找my.cnf位置
mysql --help | grep my.cnf
  • 设置docker下的redis自动启动
docker update redis --restart=always

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperLBY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值