Ubuntu 系统服务器部署mysql,可以使用docker来拉取镜像快速安装
服务器如果已经安装docker,则可以直接跳转步骤二安装mysql
linux执行命令确认docker安装,如果返回版本号,则已经安装过
# docker -v
Docker version 27.4.1, build b9d17ea
步骤1 安装docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
等待安装完成,再使用docker -v确认安装完成
步骤2 安装mysql
拉取mysql latest版本镜像
# docker pull mysql(或指定版本docker pull mysql:5.7)
Using default tag: latest
latest: Pulling from library/mysql
2c0a233485c3: Pull complete
cb5a6a8519b2: Pull complete
570d30cf82c5: Pull complete
a841bff36f3c: Pull complete
80ba30c57782: Pull complete
5e49e1f26961: Pull complete
ced670fc7f1c: Pull complete
0b9dc7ad7f03: Pull complete
cd0d5df9937b: Pull complete
1f87d67b89c6: Pull complete
Digest: sha256:0255b469f0135a0236d672d60e3154ae2f4538b146744966d96440318cc822c6
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
查看镜像
# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 56a8c14e1404 2 months ago 603MB
启动mysql
docker run -p 3306:3306 --name hoyer-mysql -e MYSQL_ROOT_PASSWORD=XXX -d mysql
- -p 容器端口映射宿主机
- --name 给容器取名
- -e 设置mysql root密码
- -d 后台运行mysql镜像
执行以上命令后检查mysql容器,能看到自己容器名就代表成功
root@ecs-lhy:~# docker run -p 3306:3306 --name hoyer-mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql
982fba00322336cdb3b656d094688042ff24e991b67ed1dbfcc416f575e943bd
root@ecs-lhy:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
982fba003223 mysql "docker-entrypoint.s…" 25 seconds ago Up 24 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp hoyer-mysql
验证链接数据库OK
PS:
补充一些避坑 提示
1、上述docker安装步骤适用于ubuntu,其他系统也能有对应脚本支持,详情可参考docker官网
2、部分服务器在docker pull mysql镜像时,可能会提示
# [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).](https://www.cnblogs.com/liujunjun/p/18546650 "发布于 2024-11-14 19:48")
默认拉取镜像是从官方仓拉取,可能会有网络限制,可以考虑使用国内仓库源来替换
#编辑文件填入国内的一些仓库源
vi /etc/docker/daemon.json
{
"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"]
}
#保存退出编辑,重启docker
systemctl daemon-reload
systemctl restart docker