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 all
和sudo yum makecache
命令后,你已经清理了YUM的缓存并重新生成了缓存。这是解决YUM相关错误的一个常见步骤,可以解决因缓存导致的一些问题。接下来,你可以根据之前遇到的问题采取不同的策略:
- 重新尝试安装:
清理缓存并重新生成缓存后,你可以尝试重新执行之前的安装命令:
sudo yum install -y docker-ce docker-ce-cli containerd.io
- 解决依赖问题:
如果之前的错误是由于依赖问题导致的,你可能需要手动解决这些依赖。这可能包括检查模块状态、寻找特定版本的软件包或使用模块管理命令来安装所需的依赖。
- 使用
--nobest
选项:如果YUM无法找到最佳候选软件包,你可以使用
--nobest
选项来安装可用的软件包,即使它们不是最佳候选:sudo yum install --nobest -y docker-ce docker-ce-cli containerd.io
- 使用
--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成功安装,你可以按照以下步骤进行后续操作:
- 启动Docker服务:
安装完成后,你需要启动Docker服务。可以使用以下命令:
sudo systemctl start docker
- 设置Docker服务开机自启:
为了确保Docker在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable docker
- 验证Docker安装:
验证Docker是否安装成功,可以通过运行一个测试容器来实现:
sudo docker run hello-world
这个命令会下载一个测试镜像,并运行它。如果Docker安装正确,你将看到一条消息,说明它正在容器中运行。如果不成功也没关系,可能是网络的问题
- 检查Docker版本:
如果需要,你可以检查Docker的版本,以确认安装了哪个版本:
sudo docker --version
- 非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
用户还可以将权限授予其他用户。具体来说,这段代码执行了以下操作:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'
:- 授予
root
用户所有权限。-
ON *.*
表示这些权限适用于所有数据库和表。-
TO 'root'@'%'
表示这些权限适用于从任何 IP 地址连接的root
用户。-
IDENTIFIED BY 'root'
设置root
用户的密码。
WITH GRANT OPTION
:- 允许
root
用户授予或撤销其他用户的权限。
FLUSH PRIVILEGES;
:- 这个命令用于重新加载授权表,使权限更改立即生效。在某些情况下,如果是通过
CREATE USER
或GRANT
命令添加用户或授予权限,可能需要执行此命令。执行位置:
这段代码应该在 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