感谢阅读!❤️
如果这篇文章对你有帮助,欢迎 **点赞** 👍 和 **关注** ⭐,获取更多实用技巧和干货内容!你的支持是我持续创作的动力!
**关注我,不错过每一篇精彩内容!**
目录
-
- 背景:
- [一、🔧准备工作:启用 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 让数据库部署变得极其简单,无论是开发、测试还是轻量级生产环境,都能快速搭建所需服务。