Ubuntu 通过 Docker 安装 Mysql8

Ubuntu 安装 Docker

  1. 更新索引并安装依赖

首先,更新现有的软件包列表,并安装一些允许 apt 通过 HTTPS 使用存储库的依赖软件。

bash 复制代码
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  1. 添加 Docker 的官方 GPG 密钥

GPG 密钥用于验证从存储库下载的软件包的完整性。

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 添加 Docker 存储库

将 Docker 存储库添加到 APT 源中。

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
  1. 安装 Docker 引擎

再次更新软件包数据库,并安装 Docker。

bash 复制代码
sudo apt update
# 安装 docker 引擎、命令行工具和容器运行时
sudo apt install docker-ce docker-ce-cli containerd.io
  1. 验证安装是否成功

安装完成后,Docker 服务应该已经启动。你可以通过运行 hello-world 镜像来验证。

bash 复制代码
sudo docker run hello-world

如果看到 "Hello from Docker!" 的提示信息,说明 Docker 已成功安装并运行。

进阶配置(可选)

A. 免 sudo 运行 Docker

默认情况下,只有 root 用户或具有 sudo 权限的用户才能运行 Docker 命令。如果你不想每次都输入 sudo,可以将当前用户加入 docker 组:

bash 复制代码
# 将当前用户添加到 docker 用户组
sudo usermod -aG docker ${USER}

注意: 修改后需要注销并重新登录,或者运行 newgrp docker 才能生效。

B. 配置 Docker 开机自启

确保 Docker 随系统启动:

bash 复制代码
sudo systemctl enable docker
sudo systemctl start docker

C. 安装 Docker Compose

如果你需要管理多容器应用,通常还需要安装 Docker Compose:

bash 复制代码
# 下载 docker compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose

D. 配置阿里云镜像仓库

shell 复制代码
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

# 使用 Docker info 命令查看配置的加速仓库
docker info

通过 Docker 安装 Mysql8

创建挂载到宿主机中的目录:

shell 复制代码
mkdir -p /docker/mysql/log
mkdir -p /docker/mysql/data
mkdir -p /docker/mysql/conf

创建自定义的配置文件:

shell 复制代码
vim /docker/mysql/conf/custom.cnf

添加如下内容:

shell 复制代码
[mysqld]
init-connect="SET collation_connection=utf8mb4_0900_ai_ci"
init_connect="SET NAMES utf8mb4"
skip-character-set-client-handshake
bind-address=0.0.0.0

启动容器:

shell 复制代码
docker run \
-d \
--name mysql \
-v /docker/mysql/log:/var/log/mysql \
-v /docker/mysql/data:/var/lib/mysql \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql8.0

让 root 用户可以远程登录:

shell 复制代码
docker exec -it mysql /bin/bash
mysql -uroot -p
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
flush privileges;

创建用户并授予全部数据库的权限:

shell 复制代码
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
grant all on *.* to 'test'@'%' with grant option;
flush privileges;
相关推荐
赵文宇(温玉)1 小时前
Docker Compose 安装 Etcd
docker·容器·etcd
乌萨奇也要立志学C++2 小时前
【Linux】Socket编程UDP Echo 服务器→翻译服务器→多人聊天室
linux·服务器·udp
likeGhee2 小时前
docker创建nginx+keepalived+nacos集群(仅测试环境)
nginx·docker
代码中介商2 小时前
Linux多线程编程进阶:fork与锁的交互及网络编程入门
linux·运维·服务器
ErizJ2 小时前
Docker | 学习笔记
笔记·学习·docker
我不是立达刘宁宇2 小时前
权限提升-前置基础-linux
linux·运维·服务器
IOT.FIVE.NO.12 小时前
claude code desktop cowork报错解决和记录Workspace..The isolated Linux environment ...
linux·服务器·数据库
TOWE technology2 小时前
EN32/G2401FCI——32A大功率,24位国标输出的高密度配电方案
linux·服务器·网络·科技·数据中心·pdu·智能pdu
青梅橘子皮11 小时前
Linux---基本指令
linux·运维·服务器