在 Ubuntu 上安装 Docker 并部署 MySQL 容器

复制代码
感谢阅读!❤️
如果这篇文章对你有帮助,欢迎 **点赞** 👍 和 **关注** ⭐,获取更多实用技巧和干货内容!你的支持是我持续创作的动力!
**关注我,不错过每一篇精彩内容!**

目录

    • 背景:
    • [一、🔧准备工作:启用 root 用户(可选)](#一、🔧准备工作:启用 root 用户(可选))
    • [二、📦安装 Docker](#二、📦安装 Docker)
      • [1. 🔄 更新系统包](#1. 🔄 更新系统包)
      • [2. ⚙️安装必要依赖](#2. ⚙️安装必要依赖)
      • [3. 🔑添加 Docker 官方 GPG 密钥](#3. 🔑添加 Docker 官方 GPG 密钥)
      • [4.📥 添加 Docker 官方仓库](#4.📥 添加 Docker 官方仓库)
      • [5. 🚀安装 Docker 引擎](#5. 🚀安装 Docker 引擎)
      • [6. 👥配置非 root 用户免 sudo 使用 Docker(推荐)](#6. 👥配置非 root 用户免 sudo 使用 Docker(推荐))
      • [7. 🛡️设置 Docker 开机自启](#7. 🛡️设置 Docker 开机自启)
      • [8. 🌐配置国内镜像加速(提升拉取速度)](#8. 🌐配置国内镜像加速(提升拉取速度))
    • [三、🗄️使用 Docker 部署 MySQL](#三、🗄️使用 Docker 部署 MySQL)
      • [1.▶️ 拉取并运行 MySQL 容器](#1.▶️ 拉取并运行 MySQL 容器)
      • [2. ✅验证 MySQL 是否运行成功](#2. ✅验证 MySQL 是否运行成功)
      • [3. 🔌连接 MySQL(可选)](#3. 🔌连接 MySQL(可选))
    • 四、🧰常用管理命令(附录)
    • [五、🎯 总结](#五、🎯 总结)

背景:

在现代软件开发与运维中,Docker 已成为容器化部署的主流工具。它能帮助我们快速、一致地运行应用程序,而无需担心环境差异问题。本文将带你一步步在 Ubuntu 系统上安装 Docker,并使用 Docker 部署一个 MySQL 数据库容器。


一、🔧准备工作:启用 root 用户(可选)

如果你习惯使用 root 用户操作,可以先启用并设置 root 密码:

bash 复制代码
sudo passwd root

接着编辑 SSH 配置文件,允许 root 登录(仅限需要远程登录 root 的情况):

bash 复制代码
sudo nano /etc/ssh/sshd_config

找到 PermitRootLogin 行,修改为:

conf 复制代码
PermitRootLogin yes

保存后重启 SSH 服务:

bash 复制代码
sudo systemctl restart sshd

然后切换到 root 用户:

bash 复制代码
su root

注意:生产环境中不建议直接使用 root 用户,此处仅为方便演示。


二、📦安装 Docker

1. 🔄 更新系统包

bash 复制代码
sudo apt update && sudo apt upgrade -y

2. ⚙️安装必要依赖

bash 复制代码
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg

3. 🔑添加 Docker 官方 GPG 密钥

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4.📥 添加 Docker 官方仓库

bash 复制代码
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 🚀安装 Docker 引擎

bash 复制代码
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

6. 👥配置非 root 用户免 sudo 使用 Docker(推荐)

如果使用非root用户,执行完后,当前非root用户之后执行一些命令,不用加sudo

bash 复制代码
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

执行 newgrp docker 后,当前终端会话将加入 docker 用户组,无需重新登录即可使用 docker 命令。

7. 🛡️设置 Docker 开机自启

bash 复制代码
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

8. 🌐配置国内镜像加速(提升拉取速度)

创建或编辑 Docker 配置文件:

bash 复制代码
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json

填入以下内容(使用多个国内镜像源提高稳定性):

json 复制代码
{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker-0.unsee.tech/",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}

重启 Docker 服务使配置生效:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

验证镜像加速是否生效:

bash 复制代码
docker info

在输出中应能看到类似如下内容:

bash 复制代码
Registry Mirrors:
  https://docker.mirrors.ustc.edu.cn/
  https://hub-mirror.c.163.com/
  ...

三、🗄️使用 Docker 部署 MySQL

现在我们来运行一个 MySQL 容器。由于国内无法再从Docker Hub 拉取镜像,上个步骤已经配置了国内镜像仓库。接下来就可以直接拉取镜像运行容器了。

1.▶️ 拉取并运行 MySQL 容器

执行以下命令启动 MySQL 8.4.7 容器:

bash 复制代码
docker run -p 3306:3306 \
  --name mysql \
  -d \
  -v mysql_data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -e MYSQL_DATABASE=Online \
  -e MYSQL_USER=meme \
  -e MYSQL_PASSWORD=meme123 \
  --restart=unless-stopped \
  mysql:8.4.7

参数说明:

  • -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口(MySQL 默认端口)
  • --name mysql:为容器指定名称为 mysql
  • -d:后台运行容器(detached mode)
  • -v: 数据持久化,容器重建不丢数据
  • -e:设置环境变量
    • MYSQL_ROOT_PASSWORD:设置 root 用户密码
    • MYSQL_DATABASE:初始化时自动创建的数据库名
    • MYSQL_USER / MYSQL_PASSWORD:创建一个普通用户及其密码
  • --restart:指定容器的重启策略

⚠️ 安全提示:示例中密码为明文,请根据实际需求修改强密码,避免在生产环境中使用弱密码。

2. ✅验证 MySQL 是否运行成功

查看正在运行的容器:

bash 复制代码
docker ps

你应该能看到名为 mysql 的容器处于运行状态。

查看日志确认 MySQL 启动无误:

bash 复制代码
docker logs mysql

若看到 mysqld: ready for connections 字样,说明 MySQL 已成功启动。

3. 🔌连接 MySQL(可选)

你可以使用本地 MySQL 客户端连接(需已安装 mysql-client):

bash 复制代码
mysql -h 127.0.0.1 -P 3306 -u root -p

输入密码 123456 即可登录。

或者进入容器内部操作:

bash 复制代码
docker exec -it mysql mysql -u root -p

四、🧰常用管理命令(附录)

功能 命令
停止容器 docker stop mysql
启动容器 docker start mysql
删除容器 docker rm -f mysql
查看日志 docker logs -f mysql
进入容器 Shell docker exec -it mysql /bin/bash

五、🎯 总结

✅ 在 Ubuntu 上完整安装 Docker

✅ 配置国内镜像加速,提升下载速度

✅ 以容器方式部署 MySQL 数据库,并初始化用户和数据库

Docker 让数据库部署变得极其简单,无论是开发、测试还是轻量级生产环境,都能快速搭建所需服务。

相关推荐
翼龙云_cloud2 小时前
亚马逊云渠道商:Lightsail 如何制定备份与快照策略以平衡安全及成本?
运维·安全·云计算·aws
Asus.Blogs2 小时前
SSE + Resty + Goroutine + Channel 完整学习笔记
笔记·学习·golang
·云扬·2 小时前
Linux系统下MySQL服务器关键配置优化指南
linux·服务器·mysql
雍凉明月夜2 小时前
深度学习网络笔记Ⅱ(常见网络分类1)
人工智能·笔记·深度学习
卷心菜_2 小时前
代码随想录笔记-背包问题
笔记
北岛寒沫2 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第十三课 垄断竞争)
人工智能·经验分享·笔记
学Linux的语莫2 小时前
kompose、docker转k8s
docker·容器·kubernetes
·云扬·2 小时前
MySQL分页查询优化:从基础到进阶实践
数据库·mysql·oracle
zhendianluli3 小时前
如何阅读理解用户手册里的函数文档, 以man 2 stat举例
linux·运维