使用 Docker 部署 mysql 应用
介绍
准备工作
- 一台服务器
- Vultr 注册购买:SSD VPS Servers, Cloud Servers and Cloud Hosting - Vultr.com
- Racknerd 注册购买:RackNerd LLC
- 一个域名(可选)
- SSH 连接工具(可选)
- 反向代理工具(可选)
- NPM 官网:Nginx Proxy Manager
以上提供的内容仅作为参考,请按需选用
快速使用
使用 Docker 部署
环境搭建
创建容器
-
在系统任意位置创建一个文件夹(可选)
mkdir -p /opt/docker/mysql && cd /opt/docker/mysql mkdir ./{conf,data,logs}
-
搜索 & 拉取镜像
docker search mysql docker pull mysql:5.6
-
启动服务
docker run -id \ -p 3306:3306 \ --name=mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:5.6
参数说明:
-p 3307:3306
- 将容器的 3306 端口映射到宿主机的 3307 端口。-v $PWD/conf:/etc/mysql/conf.d
- 将主机当前目录下的conf/my.cnf
挂载到容器的/etc/mysql/my.cnf
配置目录。-v $PWD/logs:/logs
- 将主机当前目录下的 logs 目录挂载到容器的/logs
日志目录。-v $PWD/data:/var/lib/mysql
- 将主机当前目录下的 data 目录挂载到容器的/var/lib/mysql
数据目录。-e MYSQL_ROOT_PASSWORD=123456
- 初始化 root 用户的密码。
更新容器
-
停止运行中的容器
docker stop mysql docker rm mysql
-
备份数据(重要)
cp -r /opt/docker/mysql /opt/docker/mysql.archive
-
更新服务
-
拉取镜像
docker pull mysql:8.0
-
重新启动服务
docker run -id \ -p 3307:3306 \ --name=mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/logs:/logs \ -v $PWD/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:8.0
使用 Docker Compose 部署
环境搭建
创建容器
-
在系统任意位置创建一个文件夹(可选)
mkdir -p /opt/docker/mysql && cd /opt/docker/mysql mkdir ./{conf,data,logs,init}
注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存。
-
创建
docker-compose.yaml
version: '3' services: mysql: image: mysql:5.6 container_name: e-mysql privileged: true restart: always ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=123456 volumes: - $PWD/conf:/etc/mysql/conf.d - $PWD/conf/my.cnf:/etc/my.cnf - $PWD/logs:/logs - $PWD/data:/var/lib/mysql - $PWD/init:/docker-entrypoint-initdb.d/ networks: default: driver: bridge
-
启动服务
docker-compose up -d
实时查看日志:
docker-compose logs -f
更新容器
-
停止运行中的容器
cd /opt/docker/mysql && docker-compose down
-
备份数据(重要)
cp -r /opt/docker/mysql /opt/docker/mysql.archive
-
更新服务
-
修改
docker-compose.yaml
中配置的镜像版本 -
拉取镜像
docker-compose pull
-
重新启动服务
docker-compose up -d