Linux中安装Docker,并使用Docker安装MySQL和Redis

1、安装docker

1卸载系统之前的docker

yum remove docker \
				docker-client \
 				docker-client-latest \
 				docker-common \
 				docker-latest \
 				docker-latest-logrotate \
 				docker-logrotate \
 				docker-engine

2、安装Docker-CE

#安装必须的依赖 
sudo yum install -y yum-utils \
	device-mapper-persistent-data lvm2
#查看是否安装成功
yum list installed | grep -E 'yum-utils|device-mapper-persistent-data|lvm2'
#设置dockerrepo的yum位置 
#sudo yum-config-manager --add-repo  #https://download.docker.com/linux/centos/docker-ce.repo 
#下面是国内镜像网站
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
	#安装docker,以及docker-cli 
	sudo yum install docker-ce docker-ce-cli containerd.io

[!CAUTION]

注意

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 的解释

执行 sudo yum clean allsudo yum makecache 命令后,你已经清理了YUM的缓存并重新生成了缓存。这是解决YUM相关错误的一个常见步骤,可以解决因缓存导致的一些问题。接下来,你可以根据之前遇到的问题采取不同的策略:

  1. 重新尝试安装:

清理缓存并重新生成缓存后,你可以尝试重新执行之前的安装命令:

  sudo yum install -y docker-ce docker-ce-cli containerd.io
  1. 解决依赖问题:

如果之前的错误是由于依赖问题导致的,你可能需要手动解决这些依赖。这可能包括检查模块状态、寻找特定版本的软件包或使用模块管理命令来安装所需的依赖。

  1. 使用 --nobest 选项:

如果YUM无法找到最佳候选软件包,你可以使用 --nobest 选项来安装可用的软件包,即使它们不是最佳候选:

 sudo yum install --nobest -y docker-ce docker-ce-cli containerd.io
  1. 使用 --allowerasing 选项:

如果安装过程中存在软件包冲突,可以使用 --allowerasing 选项来允许YUM替换或重新安装软件包:

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

执行 sudo yum install --allowerasing -y docker-ce docker-ce-cli containerd.io 命令后,如果Docker成功安装,你可以按照以下步骤进行后续操作:

  1. 启动Docker服务:

安装完成后,你需要启动Docker服务。可以使用以下命令:

  sudo systemctl start docker
  1. 设置Docker服务开机自启:

为了确保Docker在系统启动时自动启动,可以使用以下命令:

sudo systemctl enable docker
  1. 验证Docker安装:

验证Docker是否安装成功,可以通过运行一个测试容器来实现:

sudo docker run hello-world

这个命令会下载一个测试镜像,并运行它。如果Docker安装正确,你将看到一条消息,说明它正在容器中运行。如果不成功也没关系,可能是网络的问题

  1. 检查Docker版本:

如果需要,你可以检查Docker的版本,以确认安装了哪个版本:

sudo docker --version
  1. 非root用户运行Docker:

默认情况下,Docker需要root权限来运行。如果你希望以非root用户身份运行Docker,可以添加用户到docker组:

sudo usermod -aG docker your-username

your-username替换成你的用户名。之后,你需要注销并重新登录,或者重启系统以使这个变更生效。

3、启动docker

sudo systemctl start docker

4、设置docker开机自启

sudo systemctl enable docker 

5、配置docker镜像加速

#阿里云,容器镜像服务 
#下面只是例子,没有实际效果
sudo mkdir -p /etc/docker 
sudo tee/etc/docker/daemon.json<<-'EOF' 
{
	"registry-mirrors"["https://***************.mirror.aliyuncs.com"] } 
EOF 
sudo systemctl daemon-reload 
sudo systemctl restart docker
#操作过程如下:

操作过程:

图1
在这里插入图片描述

图2

在这里插入图片描述

2、docker 安装mysql

1、下载镜像文件

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
#参数说明
#-p 3306:3306:将容器的 3306端口映射到主机的3306端口
#-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
#-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
#-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
#-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码

MySQL 配置

vi /mydata/mysql/conf/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 
#注意:解决MySQL连接慢的问题 
#在配置文件中加入如下,并重启mysql 
#[mysqld] 
#skip-name-resolve 
#解释: 
#skip-name-resolve:跳过域名解析 

3、通过容器的mysql命令行工具连接

docker exec -it mysql mysql -uroot -p

在这里插入图片描述

[!CAUTION]

注意

恭喜,你已经成功使用 docker exec -it 命令进入了名为 mysql 的 Docker 容器,并启动了 MySQL 客户端,以 root 用户身份登录。现在你处于 MySQL 的命令行界面,可以执行 SQL 命令来管理数据库。

以下是一些基本的 MySQL 命令,你可以在 mysql> 提示符下尝试:

查看所有数据库:

SHOW DATABASES;
选择一个数据库(例如 mysql 数据库):

USE mysql;
查看当前数据库中的所有表:

SHOW TABLES;
查看某个表的结构(例如 user 表):

DESC user;
退出 MySQL 客户端:

执行命令 \q 或者输入 exit,然后按回车键。
获取帮助:

在 MySQL 提示符下输入 help; 或者 \h 来获取帮助信息。
请记住,MySQL 命令通常以分号 ; 结尾,并且每个命令之后都需要按回车键来执行。

4、设置root远程访问

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; 
flush privileges;

[!CAUTION]

注意

这段代码用于在 MySQL 中授予 root 用户从任何主机('%' 表示任意主机)连接并拥有所有数据库和表的所有效权利(ALL PRIVILEGES)。同时,该命令还包含了 WITH GRANT OPTION,这意味着 root 用户还可以将权限授予其他用户。

具体来说,这段代码执行了以下操作:

  1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root':

- 授予 root 用户所有权限。

- ON *.* 表示这些权限适用于所有数据库和表。

- TO 'root'@'%' 表示这些权限适用于从任何 IP 地址连接的 root 用户。

- IDENTIFIED BY 'root' 设置 root 用户的密码。

  1. WITH GRANT OPTION:

- 允许 root 用户授予或撤销其他用户的权限。

  1. FLUSH PRIVILEGES;:

- 这个命令用于重新加载授权表,使权限更改立即生效。在某些情况下,如果是通过 CREATE USERGRANT 命令添加用户或授予权限,可能需要执行此命令。

执行位置:

这段代码应该在 MySQL 容器中执行,而不是在 Linux 用户环境中执行。你需要先进入 MySQL 容器的 MySQL 客户端:

docker exec -it mysql mysql -uroot -p

在提示输入密码时,输入 root 用户的密码(假设你之前设置的密码是 root),然后你将进入 MySQL 的命令行界面。在那里,你可以执行上述 SQL 命令。

安全警告:

使用 root 用户并从任何主机('%')授予所有权限可能会带来安全风险,因为它允许任何人从任何地方以 root 用户身份连接到你的 MySQL 服务器。在生产环境中,建议仅授予必要的权限,并且仅允许受信任的主机连接。此外,使用强密码和考虑使用更安全的认证机制也是非常重要的。

如果你正在设置开发环境或者测试环境,并且了解潜在的安全风险,那么你可以按照上述方式进行操作。但对于生产环境,请采取更严格的安全措施。

5、进入容器文件系统

docker exec -it mysql /bin/bash

3、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/data:/data \
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf

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

docker exec -it redis redis-cli

如果您想进入 Redis 容器进行操作,可以使用:

docker exec -it redis /bin/bash

相关推荐

  1. docker安装mysqlredis

    2024-06-10 03:46:03       35 阅读
  2. Docker安装使用Redis

    2024-06-10 03:46:03       25 阅读
  3. 使用Docker安装Redis运行

    2024-06-10 03:46:03       26 阅读
  4. Docker安装使用MySQL

    2024-06-10 03:46:03       27 阅读
  5. 使用 Docker 安装 RedisMySQL、MinIO RocketMQ

    2024-06-10 03:46:03       42 阅读
  6. Docker 安装 Redis

    2024-06-10 03:46:03       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 03:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 03:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 03:46:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 03:46:03       20 阅读

热门阅读

  1. MySQL无法设置密码解决方案

    2024-06-10 03:46:03       9 阅读
  2. web前端构建表单:深入探索与实践

    2024-06-10 03:46:03       10 阅读
  3. Go语言整型(整数类型)的详解

    2024-06-10 03:46:03       9 阅读
  4. C++中的封装,继承和多态

    2024-06-10 03:46:03       7 阅读
  5. C++中的常见I/O方式

    2024-06-10 03:46:03       7 阅读
  6. 自动化专业之半导体行业入门指南

    2024-06-10 03:46:03       9 阅读