Docker在Windows下使用入门

安装 Docker Desktop

建议在Windows10专业版和企业版上面安装
安装前先启用Hyper-v,确保Hyper-v能正常使用(例如,能正常安装虚拟机,并能运行起来)
官网下载Docker Desktop ; 建议下载2.3版本,我用3.X版本怎么都安装不了
安装时不要勾选Use the WSL 2 based engine 否则很难成功(已经安装好了可以在设置里面取消)
安装完成后运行Docker Desktop,
等一会, 系统任务栏的Docker图标提示Docker is running后, 打开命令行就可以使用docker 了
在cmd中运行 docker images 没有报错就说明正常了

第一次运行Docker Desktop时会建议使用 WSL2 ,不要理选用Hyper-v

运行第一个容器

先安装一个容器管理工具: 执行如下命令
1,未绑定数据卷:开发环境

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock  portainer/portainer

1,绑定了数据卷:生产环境

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

## 获取容器管理权限  -v /var/run/docker.sock:/var/run/docker.sock
## 映射数据文件夹  -v portainer_data:/data

成功之后在浏览器里面打开网址: http://localhost:9000/
就可以管理你电脑上Docker里面的镜像和容器了

以下为使用Docker的一个例子: 运行一个linux下的mssqlserver

运行一个数据库容器

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Abc123456' -p 14330:1433 --name MSSQL -d mcr.microsoft.com/mssql/server

容器启动后, 用你的SSMS或者Toad就可以连上这个数据库了 : 127.0.0.1,14330 sa / Abc123456

以后再也不用痛苦的安装SQLServer数据库了

把现有的数据库迁移到容器里面

按下面这篇文章, 就可以把现有的数据库迁移到容器里面
使用备份和还原将 SQL Server 数据库从 Windows 迁移到 Linux
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017
以下是分步教程

一 在数据库容器中安装sqltools

进入portainer: http://localhost:9000/
找到数据库容器, 以root身份进入MSSQL容器的命令行

先后执行如下命令即可完成sqltools的安装

//更新源列表
apt-get update
//安装mssql-tools
apt-get install mssql-tools unixodbc-dev
//添加环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

CentOS下的命令

yum -y update
yum -y install mssql-tools unixodbc-dev
//添加环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

分步过程如下 :
1,更新源列表 : apt-get update
2,安装mssql-tools : apt-get install mssql-tools unixodbc-dev
参考如下文章 在 Linux 上安装 sqlcmd 和 bcp SQL Server 命令行工具
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#install-tools-on-ubuntu-1604
备注: 我们的数据库基础容器是Ubuntu

二 复制文件到容器里面

在命令行执行: docker cp 文件路径 容器Id:容器内路径
例如: 复制数据库备份文件到容器的根目录:

 docker cp D:\MSSQL\btms202009020200.bak MSSQL:./

三 还原数据库

//连接上数据库命令:  需要输入sa的密码
sqlcmd -S localhost -U SA

//写脚本还原数据库
RESTORE DATABASE btms
FROM DISK = '/btms202009020200.bak'
WITH MOVE 'btms' TO '/var/opt/mssql/data/btms.mdf',
MOVE 'btms_Log' TO '/var/opt/mssql/data/btms_Log.ldf'
GO

比较慢,要等2分钟左右
等到提示还原成功, 你就可以用SSMS或者Toad连上这个数据库了 : 127.0.0.1,14330 sa / Abc123456

用Dockerfile构建一个带mssqlserver2019带mssqltools的镜像

Dockerfile如下

FROM mcr.microsoft.com/mssql/server:2019-latest

MAINTAINER 185167668 <185167668@qq.com>

USER root
RUN apt-get update && apt-get install -y mssql-tools unixodbc-dev 
RUN rm -rf /var/cache/apk/* && rm -rf /var/lib/apt/lists/*
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

构建命令 : docker build -t=“185167668/mssql-server2019-tools” .
构建命令 : docker build --no-cache -t=“185167668/mssql-server2019-tools” . ( 无缓存 )
推送命令 : docker push 185167668/mssql-server2019-tools

我在阿里云已经构建好一个带mssqlserver2019带mssqltools的镜像, 可以用下面的命令直接拉取
docker pull registry.cn-shenzhen.aliyuncs.com/dacaba/mssql-server2019-tools

使用阿里云的容器镜像服务构建镜像

阿里云有自己的资源, 构建容器非常快,如果测试可以用阿里云构建镜像
1,写好Dockerfile ,
2,把需要的文件(打包好的程序)和Dockerfile上传到阿里云的源码管理仓库中 https://code.aliyun.com/
3,进入阿里云的容器镜像服务: https://cr.console.aliyun.com/
4,创建镜像仓库, 填写Dockerfile的源码管理仓库地址(git地址)
5,在镜像仓库内点击构建, 手动添加一个规则,就可以点击构建
阿里云就会按照Dockerfile构建仓库, 然后在生产环境拉取镜像即可

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值