目录
安装Docker命令
1.卸载原有的Docker:
2.安装docker:
3.启动docker:
4.配置镜像加速:
使用Docker安装Mysql
1.上传文件:
2.创建目录:
3.运行docker命令:
4.测试:
安装Docker命令
1.卸载原有的Docker:
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine \docker-ce
2.安装docker:
首先需要大家虚拟机联网,安装yum工具:
yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken
然后更新本地镜像源:
# 设置docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repoyum makecache fast
注意:如果执行上面命令出现下面log:
这个问题是由于 PackageKit
进程占用了 yum
的锁,导致你无法执行 yum
相关的操作(如 yum install
或 yum update
)。我们可以直接杀掉 PackageKit 进程。
PackageKit 是一个后台服务,负责自动检查软件更新,但它有时会锁定 yum
,导致手动执行 yum
命令时被阻塞。我们可以使用以下命令终止该进程:
sudo pkill -f packagekit
也可以禁用 PackageKit(防止以后再占用锁):
sudo systemctl stop packagekit
sudo systemctl disable packagekit
这将阻止 PackageKit
在系统启动时自动运行。
随后在重新运行下面命令来建立元数据缓存:
yum makecache fast
最后输入命令,稍等片刻就可以成功安装docker命令:
yum install -y docker-ce
出现上图样式且无报错则代表我们已经成功安装Docker。
3.启动docker:
Docker应用需要用到各种端口,需要逐一去修改防火墙设置非常麻烦,因此建议大家直接关闭防火墙!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
随后通过命令启动docker:
systemctl start docker # 启动docker服务systemctl stop docker # 停止docker服务systemctl restart docker # 重启docker服务
然后我们可以输入命令查看docker版本:
docker -v
4.配置镜像加速:
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
一般参考阿里云镜像加速文档:阿里云Docker镜像加速文档
随后我们按照阿里云文档配置即可。
使用Docker安装Mysql
1.上传文件:
首先我们导出mysql.tar文件(Docker 镜像备份文件)。
之后将mysql.tar文件上传到虚拟机的/tmp目录,并使用load命令将 MySQL Docker 镜像加载回本地 Docker:
docker load -i mysql.tar
也可以直接拉取,使用下面命令:
docker pull mysql:5.7.25
如果出现下面报错:
[root@localhost mysql]# docker pull mysql:5.7.25
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
首先使用下面命令进入/etc/docker/daemon.json文件:
sudo vi /etc/docker/daemon.json
随后在文件内部修改成下面代码:(阿里云可以不删,但是基本上没什么用,删了也没事)
这里使用的是vi,所以我们点击o就可以开始修改了 ->
{"dns": ["8.8.8.8", "8.8.4.4"],"registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
}
随后按 Esc
键进入命令模式,输入 :wq
然后回车即可退出 vim。
最后运行下面命令重启docker即可:
systemctl daemon-reload
systemctl restart docker
2.创建目录:
创建两个目录,作为数据库的数据卷:
创建目录/tmp/mysql/data
创建目录/tmp/mysql/conf
# 创建目录
mkdir -p /tmp/mysql/data
mkdir -p /tmp/mysql/conf
随后创建my.cnf文件:
[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000
如果想在主机上也能访问 MySQL,可以在 my.cnf
文件中添加:
bind-address = 0.0.0.0
随后将my.cnf文件上传到/tmp/mysql/conf。
3.运行docker命令:
docker run \--name mysql \ # 指定容器名称为 mysql-e MYSQL_ROOT_PASSWORD=123 \ # 设置 MySQL root 用户的密码-p 3306:3306 \ # 映射主机的 3306 端口到容器的 3306 端口-v /tmp/mysql/conf/my.cnf:/etc/mysql/conf.d/hmy.cnf \ # 挂载自定义配置文件-v /tmp/mysql/data:/var/lib/mysql \ # 挂载 MySQL 数据存储目录-d \ # 后台运行容器mysql:5.7.25 # 使用 MySQL 5.7.25 镜像
出现下图形式代表成功:
4.测试:
查看容器是否运行:
docker ps
检查日志是否有错误:
docker logs mysql
进入 MySQL 容器:
docker exec -it mysql bash
登录 MySQL:
mysql -uroot -p123
随后在Navicat连接即可:(注意:这里主机要用虚拟机的IP,可以使用ifconfig命令查看自己的虚拟机IP地址)