使用Docker部署MySQL和SQLServer

使用Docker部署MySQL和SQLServer


  • 部署MySQL
  • 部署SQLServer

1. 部署MySQL


操作步骤如下:

  1. 拉取MySQL镜像:docker pull mysql
  2. 创建并启动一个容器:docker run

1.1 拉取镜像

1
docker pull mysql

*1.2 创建并启动容器

1.2.1 要求:

  1. 为保证容器关闭时不会丢失数据
    • 目录挂载
    • 数据卷挂载
  2. 保证服务器重启后容器可以自动恢复运行

1.2.2 创建并启动容器

1
2
3
4
5
6
docker run --name local-mysql8 \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
--restart always \
-d mysql:latest
  • --name local-mysql8:给容器起一个名字
  • -e MYSQL_ROOT_PASSWORD=123456:参数配置,设置数据库密码。
  • -p 3306:3306:端口映射,将容器3306端口映射到宿主机3306端口。(宿主机:容器
  • -v mysql-data:/var/lib/mysql:创建数据卷,并挂载容器中MySQL数据路径。(可DockerHub获取路径)
  • --restart always:设置容器的重启策略为“始终重启”,确保容器自动重启。
  • -d mysql:latest:指定镜像。

{3D7D1324-5361-46E5-AA7C-D44666D8F29F}

[!TIP]

这些指令需要在容器创建的时候就指定,容器创建后无法重新设置,只能再创建一个容器。

1.3 使用Navicat连接MySQL

和正常连接一样,主机就是服务器的ip地址,端口在这里是宿主机端口(不是容器端口)。

2. 部署SQLServer


操作步骤如下:

  1. 拉取MySQL镜像:docker pull mcr.microsoft.com/mssql/server
  2. 创建并启动一个容器:docker run

2.1 拉取镜像

1
docker pull mcr.microsoft.com/mssql/server

*2.2 创建并启动容器

1
2
3
4
5
6
7
8
docker run \
-e "ACCEPT_EULA=Y" \
-e "SA_PASSWORD=haha22." \
-p 1433:1433 \
-v sqlserver-data:/var/opt/mssql \
--name sqlserver2022 \
--restart always \
-d mcr.microsoft.com/mssql/server:latest
  • -e "ACCEPT_EULA=Y": 设置环境变量 ACCEPT_EULA 的值为 Y,表示接受 SQL Server 的许可协议(EULA)。

  • -e "SA_PASSWORD=haha22.": 设置环境变量 SA_PASSWORD 的值为 haha22.,定义 SQL Server 的 SA 用户(系统管理员)的密码。

  • -p 1433:1433: 将宿主机的 1433 端口映射到容器的 1433 端口。容器内的 SQL Server 服务将监听 1433 端口,而宿主机上的应用可以通过宿主机的 1433 端口连接到 SQL Server。

  • -v sqlserver-data:/var/opt/mssql: 将名为 sqlserver-data 的 Docker 数据卷挂载到容器内的 /var/opt/mssql 目录。SQL Server 的数据文件将存储在该数据卷中,从而保证数据的持久性。

  • --name sqlserver2022: 为容器指定一个名称 sqlserver2022

  • --restart always: 设置容器的重启策略为“总是重启”,确保容器在 Docker 服务重启或系统重启后自动启动。

  • -d: 让容器在后台运行(detached mode),即不占用当前终端。

  • mcr.microsoft.com/mssql/server:latest: 使用 Microsoft Container Registry 提供的 SQL Server 最新版本镜像启动容器。

查看日志看是否启动。

{2EEDD2C7-1C79-427B-B681-DAB28AE10A4C}