赞
踩
CentOS 7.9下安装Docker及常用镜像
Docker 是一款强大的容器化平台,为开发者提供了一种轻松打包、发布和运行应用的方式。在本文中,我们将探讨如何在Linux操作系统上安装Docker,
操作系统版本为centos 7.9,内核版本需要在3.10以上,需要保障能够连通互联网,为了避免安装过程中出现网络异常建议关闭linux的防火墙(生产环境下不要关闭防火墙,可根据实际情况设置防火墙出入站规则)。
#查看内核版本
sudo uname -r
#查看系统版本
sudo cat /etc/redhat-release
#关闭防火墙
sudo systemctl stop firewalld
#禁用防火墙开机自启
sudo systemctl disable firewalld
在安装新版Docker之前,建议先卸载旧版本,以确保系统的干净升级。你可以通过以下命令卸载旧版本:
#卸载Docker相关依赖
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
3、安装工具包并设置仓库。在安装Docker之前,我们需要安装一些必要的依赖包,以确保Docker正常运行。执行以下命令安装这些依赖:
#安装工具包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置yum仓库
sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#通过yum安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
#启动Docker
sudo systemctl start docker
#设置Docker开机自启
sudo systemctl enable docker
#查看Docker版本
sudo docker version
这里用中国科学技术大学(LUG@USTC)的开源镜像:https://docker.mirrors.ustc.edu.cn和网易的开源镜像:http://hub-mirror.c.163.com。
USTC 是老牌的 Linux 镜像服务提供者了,USTC 的 Docker 镜像加速服务速度很快。USTC 和网易的优势之一就是不需要注册,属于真正的公共服务。
#编辑文件
sudo vi /etc/docker/daemon.json
#在文件中输入以下内容并保存
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}
# 重新加载某个服务的配置文件
sudo systemctl daemon-reload
# 重新启动 Docker
sudo systemctl restart docker
编辑Docker服务器上对应的配置文件
vi /usr/lib/systemd/system/docker.service
重启Docker
sudo systemctl daemon-reload
sudo service docker restart
重启完成后可通过浏览器访问http://Docker主机IP:2375/version将输出Docker版本信息,若无法访问请检查防火墙设置。
安装完成后,我们需要启动Docker服务,并将其设置为开机自启动。执行以下命令:
sudo systemctl start docker
sudo systemctl enable docker
最后,我们可以运行一个简单的Docker命令来验证安装是否成功。执行以下命令:
docker --version
如果顺利,你将看到Docker版本信息,表示安装成功。
你已成功在Linux操作系统上安装了Docker。现在,你可以开始使用Docker来构建、发布和运行容器化应用程序。
# 拉取 mysql 5.7 如果不写后面的版本号则会自动拉取最新版
sudo docker pull mysql:5.7
创建文件夹,用于存放MYSQL配置文件、日志以及数据。
sudo mkdir -p /home/docker/mysql/conf /home/docker/mysql/logs /home/docker/mysql/data
创建并编辑配置文件
sudo vi /home/docker/mysql/conf/my.conf
my.conf配置文件内容如下,可根据实际情况做适当调整。
[mysqld] character-set-server=utf8 #绑定IPv4和3306端口 bind-address = 0.0.0.0 port = 3306 sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION" default_storage_engine=innodb innodb_buffer_pool_size=1000M innodb_log_file_size=50M # 允许最大连接数 max_connections=1000 # 时区 default-time-zone = '+8:00' [mysql] default-character-set=utf8 [mysql.server] default-character-set=utf8 [mysql_safe] default-character-set=utf8
创建容器并挂载目录
sudo docker run -p 3306:3306 --name mysql --restart always --privileged=true -v /home/docker/mysql/conf:/etc/mysql -v /home/docker/mysql/logs:/var/log/mysql -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root@12580 -d mysql:5.7 #参数说明 -p 3306:3306 映射端口 --name mysql 容器名称 --restart always 自动启动容器 --privileged=true 提升容器内权限 -v /home/docker/mysql/conf:/etc/mysql 映射配置文件目录 -v /home/docker/mysql/logs:/var/log/mysql 映射日志目录 -v /home/docker/mysql/data:/var/lib/mysql 映射数据目录 -e MYSQL_ROOT_PASSWORD=root@12580 root用户密码 -d mysql:5.7 后台运行-镜像名称
进入Docker终端通过mysql客户端访问Mysql
sudo docker exec -it mysql /bin/bash
sudo mysql -uroot -proot@12580
远程连接MYSQL时连接信息如下:
host:127.0.0.1 #安装Docker的主机IP
port:3306
user:root
password:root@12580
如果容器运行正常,但是无法访问到MySQL,一般有以下几个可能的原因:
#开放端口
sudo systemctl status firewalld
sudo firewall-cmd --zone=public --add-port=3306/tcp -permanent
sudo firewall-cmd --reload
#关闭并禁用防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
MYSQL未设置远程访问权限
sudo docker exec -it mysql /bin/bash
sudo mysql -uroot -proot@12580
mysql> grant all privileges on *.* to root@'%' identified by "root@12580";
:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。