楔子

工作在win10环境下,使用Docker Windows桌面版容器化SqlServer数据库连接使用(主要是想用Docker),但是同时需要Linux系统测试,win10 下VMware 虚拟机安装CentOS 与Docker冲突(都是虚拟化技术,该冲突可以解决,但是切换麻烦略),想到Win10 Linux 子系统发现也是一样,关键Win10 Linux 子系统安装Docker无法运行,最后干脆在CentOS 虚拟机下安装Docker 然后容器化SqlServer 让外界访问使用

需要步骤(所需工具)

安装 VMware Workstation 15 Pro(略)

虚拟机安装 CentOS 8 建议

  • 内存大于2G (sqlserver 需要服务器的内存至少2G)
  • 网络先设置自动获取(GUI桌面最好,方便手动设置网络而不用进入vi修改网络配置)

Docker 安装步骤

  1. 下载docker-ce的repo
    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  2. 安装依赖
    yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
  3. 安装docker-ce
    yum install docker-ceclear
  4. 启动docker
    systemctl start docker
  5. 查看Docker版本和服务

安装SqlServer Docker(在Docker服务启动之后 )

  1. SQlServer Docker 官方指导
  2. 安装sqlserver
  • 执行 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=sa账户的强密码' -p 1433:1433 --name=mysqlserver2017 -d mcr.microsoft.com/mssql/server:2017-latest
    这里会直接pull sqlserver 2017 的镜像到Docker 并且运行一个name=mysqlserver2017的容器,映射端口为1433(也就是centOS 中可以通过localhost:1433访问该数据库或者Ip地址)
  • 如果没有成功或者容器运行几秒之后停止,原因可能是服务器内存不足2g或者sa密码太弱了 可以查看日志 Docker logs mysqlserver2017
  1. CentOS 中与容器交互 docker exec -it mysqlserver2017 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password>
  2. 到目前为止仅CentOs 可以访问SqlServer

Windows 访问CentOS 8 Ip+1433端口

  1. 开放端口 firewall-cmd --zone=public --add-port=1433/tcp --permanent
  2. 重启防火墙 firewall-cmd --reload
    3.ip addr 查看ip
  3. windows->cmd->telnet 192.168.2.2 1433 成功访问那么既可访问数据库(如果不成功,关闭防火墙再试systemctl stop firewalld.service)
  4. 使用DataGrip 连接并访问

    End---

Win10 连接CentOS 8 的Docker容器中 SqlServer数据库的更多相关文章

  1. docker容器中Postgresql 数据库备份

    查看运行的容器: docker ps 进入目标容器: docker exec -u root -it 容器名 /bin/bash docker 中,以root用户,创建备份目录,直接执行如下命令, p ...

  2. docker容器中oracle数据库导出dmp文件

    Oracle数据库安装在docker容器中 1首先查看容器 docker ps 2进入oracle容器 docker exec -it 7f0f3f2d4f88 /bin/bash 3导出整个库:这个 ...

  3. 在CentOS下的docker容器中部署spring boot应用的两种方式

    我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...

  4. .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑

    今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...

  5. docker容器中的peewee如何连接已有的容器中的数据库

    首先,两个容器必须是在同一网络下,有2个办法. 一个是在同一个docker-compose.yml文件下使用links参数,比如: version: '3' services: redis: imag ...

  6. docker多个容器连接 将 Rails 程序部署到 Docker 容器中

    在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中

  7. Docker容器中开始.NETCore之路

    一.引言 开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境 ...

  8. Docker容器中开始.Net Core之路

    开始写这篇博客前,已经尝试练习过好多次Docker环境安装,.Net Core环境安装了,在这里替腾讯云做一个推广,假如我们想学习.练手.net core 或是Docker却苦于没有开发环境,服务器也 ...

  9. 在Docker容器中安装jdk和spark

    在Docker容器中安装jdk和spark 1.下载jdk和spark 可以使用迅雷等专业下载软件下载jdk和spark软件包,注意是linux版,这里直接给出下载地址: JDK下载地址 JDK进入后 ...

随机推荐

  1. 基于HTML5 WebGL的工业化3D电子围栏

    前言 现代工业化的推进在极大加速现代化进程的同时也带来的相应的安全隐患,在传统的可视化监控领域,一般都是基于 Web SCADA 的前端技术来实现 2D 可视化监控,本系统采用 Hightopo 的 ...

  2. 你不知道的 IDEA Debug调试小技巧

    一.多线程调试断点 Intellij IDEA 的debug断点调试是有一个模式的选择的,就像下面这张图,平时我们都使用的是默认的 ALL(在Eclipse中默认是线程模式) ,这种模式我们只能将一个 ...

  3. python编程基础之六

    运算符和表达式 +,-,*,/,     加减乘除 %, 模运算 **,  幂运算 //  整除 运算优先级方面:** >正负号(+,-)>//,%>*,/>+,- 模运算有一 ...

  4. e课表项目第二次冲刺周期第四天

    昨天干了什么? 昨天,我在网上搜集了相关的资料,即连接安卓自带的数据库,查询了连接的方法,然后在电脑上,做了简单的练习,发现可以用,所以对我们的软件进行数据库的连接,设置了完成按钮的活动,即先保存到数 ...

  5. BZOJ 4597: [Shoi2016]随机序列

    4597: [Shoi2016]随机序列 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 255  Solved: 174[Submit][Status ...

  6. MacOS 导入MySQLdb 报错解决思路(解决ImportError: this is MySQLdb version (1, 2, 3, 'beta', 1), but _mysql is version (1, 2, 5, 'final', 1))

    cd /Library/Python/2.7/site-packages ls rm -rf MySQL_python-1.2.5-py2.7.egg-info 然后重新import 即可

  7. C语言入门-结构类型

    一.声明结构类型 #include <stdio.h> int main(int argc, char const *argv[]) { // 声明结构类型 struct date { i ...

  8. 8 个 Python 实用脚本,【速】收藏备用!

    脚本写的好,下班下得早!程序员的日常工作除了编写程序代码,还不可避免地需要处理相关的测试和验证工作. 例如,访问某个网站一直不通,需要确定此地址是否可访问,服务器返回什么,进而确定问题在于什么.完成这 ...

  9. 客户端 SOCKET 编程

    建立客户端的 Socket: 客户端应用程序首先也是调用 WSAStartup() 函数来初始化 Winsock 的动态连接库,然后同样 调用 socket() 来建立一个 TCP 或 UDP Soc ...

  10. Windows 7 SP1官方原版ISO系统镜像所有版本下载集合

    ========================================================================== Windows 7 With SP1 32位简体中 ...