Docker 是一种开源的容器化平台,用于构建、发布和运行应用程序。
它可以将应用程序及其依赖项打包到一个独立的、可移植的容器中,从而实现了应用程序在不同环境中的一致性和可移植性。
如果本地搭建 docker,我们开发人员就可以快速构建、部署和扩展应用程序了,而无需担心环境差异或依赖项冲突的问题。
系统和硬件要求
- 操作系统要求:系统是 windows10,现在电脑硬件低,大都是64位
硬件:
- 处理器:至少是支持硬件虚拟化(Intel VT-x 或 AMD-V)的双核处理器。
- 内存:建议至少4G
- 硬盘:至少准备5G的空间
- 虚拟化支持:在BIOS设置中启用了硬件虚拟化技术(如Intel VT-x 或 AMD-V),下面会详细介绍
一、开启 Hyper-V
安装 Docker Desktop 需要启用 Hyper-V 和 Windows 容器功能。
【控制面板】-> 【所有控制面板项】-> 【程序和功能】
打开【启用或关闭 Windows 功能】窗口,勾选:
安装完成需要重启才会生效,先不重启,稍后再重启。
二、安装 docker
1、下载 docker 安装程序
docker 官网 windows 版下载地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows
下载完成后是一个exe文件【Docker for Windows Installer.exe】
2、安装 docker
双击安装文件进行安装,等待一小段时间,安装完成后会出现下面的窗口:
这时候点击【close and log out】会重启电脑。
三、使用 docker
启动【Docker for Windows】,启动命令窗口,输入命令【docker version】可查看 docker 版本,如:
3.1 使用 docker 安装 sql server 数据库
1.以管理员身份启动命令窗口,输入命令【docker search mssql】:
2.输入命令【docker pull microsoft/mssql-server-linux】下载镜像:
3.创建并运行容器
输入命令【docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password01!" -p 1445:1433 --name MSSQL_loan -d microsoft/mssql-server-linux】
4.登录容器
输入命令【docker exec -it MSSQL_loan /bin/bash】:
5.连接到 sqlcmd
输入命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!'】:
6.创建数据库并进行测试
输入命令【CREATE DATABASE TestDB】创建一个数据库:
1> CREATE DATABASE TestDB
2> go
输入命令【select name,database_id,create_date from sys.Databases】查看已存在的数据库:
7.使用客户端 mssms 连接创建的 sqlserver
服务器名称就是你的本地【IP,端口】,如本次前面设置的是1445,
3.2 使用 docker 还原 sql server 数据库
1.在容器内创建一个目录
如果是继续上面的步骤,则先退出【quit】到容器管理中:
如果没有登录容器,则先登录容器【docker exec -it MSSQL_loan /bin/bash】。
使用命令【mkdir /var/opt/mssql/backup】创建一个目录,然后再退出容器:
3.将数据库备份文件(.bak文件)复制到容器中
使用命令【docker cp E:/job/techTest/docker/sqlserver/Loan.bak MSSQL_loan:/var/opt/mssql/backup】进行复制:
4.还原数据库
先登录容器【docker exec -it MSSQL_loan /bin/bash】,列出备份数据文件的逻辑名,使用命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/Loan.bak"' | tr -s ' ' | cut -d ' ' -f 1-2】:
还原数据库,使用命令【/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Password01!' -Q 'RESTORE DATABASE Loan FROM DISK = "/var/opt/mssql/backup/Loan.bak" WITH MOVE "Loan" TO "/var/opt/mssql/data/Loan.mdf" , MOVE "Loan_log" TO "/var/opt/mssql/data/Loan.ldf"'】:
注:个人不是很推荐在windows中安装 docker,日常使用 docker 还是建议安装在 linux 上的,当然没有 Linux 服务器的情况下,windows 安装 docker 也是不错的选择。