本文主要是通过安装MSSQL,说明在MACOS里安装Docker的样例。也可以给Linux或Windows环境下的思路是一样的。只是在安装是有几个坑,浪费也蛮多的时间的。所以记录一下。
前言:
由于我的是MacOS环境下的,虽然我工作的环境是支持多平台的,但是有些业务还是MacOS没有的。比如MS SQL、或者堡垒机等等。
虽然,我在MacOS里,其实是已经安装了Odoo的开发和测试环境的,包括数据库等。但是触动我想安装Docker有几个方面的原因。
1.是因为我想安装MS SQL。基本上,搞企业信息化的人其中的一个技能就是要会SQL,由于我之前用SAP系统时,用的就是MSSQL。我的好多经典的资料都是MSSQL为背景的。短时间内我还没完全迁到PostgreSQL版本来,这需要一个过程。而且对于SQL来说,版本有时似乎也不是真的特别重要;主要还是语法SQL。
所以我的电脑上就有三个SQL的版本:MySQL、PostgreSQL、MSSQL。
2.如果Docker安装了MSSQL,那安装Odoo等其他服务还会有问题吗?
Docker的本原理,可以跨平台节省成本,甚至可以应用到阿里的ECS主机等。所以决定用自己的MacOS安装Dorcker作为初步认识。
以下是具体的安装过程
基本上的安装顺序为:1.安装Docker;2.安装镜像;3.配置容器;4.运行镜像,也是进入容器里去运行镜像。
1.安装Docker
具体的安装就不细说了。直接去官网下载一个docker.dmg文件(这里指的都是社区版)。
安装完要进行设置与配置,其中要说一点的是:要设置其内存至少4G。

#安装完成可以执行Docker help进行查看帮助。我在这之前都没玩过Docker: docker images #--查询安装的镜像; docker rm/rmi #--表示删除容器/镜像; docker ps -a #--表示查询正在运行的容器有那些。Up表示正运行。
2.安装镜像
至于安装什么镜像服务,主要有Docker镜像都能安装。要查询你想要安装的镜像名称、版本、具体名称等。我这里要安装的是,Microsoft SQL Server 2017版本。
2.1)拉取镜像:
docker pull mcr.microsoft.com/mssql/server:2017-latest #如下图
2.2)关联容器
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' \
-p 1433:1433 --name sql1 \
-d mcr.microsoft.com/mssql/server:2017-latest
#启动容器:
docker ps -a #查看所有容器,拿到容器的ID。
sudo docker start 7b7daa32a046 #启动容器。
发现导致容器一直启动不了,是“Exited”的状态。
一直找不到原因,看官网给的安装方法和查资料搞了一天,发现竟然是初始密码的原因。
'SA_PASSWORD=<YourStrong!Passw0rd>' #这一步不能变。我把这里更改为自己的初始密码,是不对的。
重新删除容器,再关联,这一次我是没有再修改那个密码,打算成功创建后再修改。如下图,可以看到状态为:Up,表示成功了!
2.3)修改MSSQL的SA密码:
成功启动后就要修改SA密码: docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P '<YourStrong!Passw0rd>' \ -Q 'ALTER LOGIN SA WITH PASSWORD="*******"' #其中,*号表示自己的密码。
注:出现如下信息,需要把密码复杂度提高即可!
Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols.
到这里算成功了!不过,不是每次都登陆容器,再登陆数据库,这样好麻烦。
3.接下来连接MSSQL:
1)先登陆容器 sudo docker exec -it sql1 "bash" #sql1是我在安装时给的名称。
2)连接数据库 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '************' # *号代表你的密码。 注意:连接数据后就可以进行数据库操作了,不过这里是标准的MS语法,如要执行后面要GO。 #退出镜像:quit.
3)外部工具连接MSSQL
我这里用的是Navicat Premium客户端。
连接时要填宿主的IP,即是本地的IP。
至此,利用Doker安装MSSQL2017就算完成了。
安装时,参考文档,如下:
- https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash
- https://docs.docker.com/engine/reference/run/
- https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-linux-ver15&pivots=cs1-bash#pullandrun2019
3.其他如Odoo镜像
Docker也有Odoo镜像的。安装方法找到Odoo也是一样有相关的操作方法。
如下链接:
https://hub.docker.com/_/odoo
安装方法一致。
由于我已经在MacOS本机已经安装了Odoo,所以就不需要在Docker里进行安装了。
End.
请问docker pull始终不成功。是这样的,我尝试换了很多国内的镜像,网易,阿里等,有些直接time out
能用的一直这样
2017-latest: Pulling from mssql/server
59ab41dd721a: Pulling fs layer
57da90bec92c: Download complete
06fe57530625: Download complete
5a6315cba1ff: Download complete
739f58768b3f: Download complete
3a58fde0fc61: Download complete
89b44069090d: Retrying in 1 second
3f6b360deb9e: Waiting
b8d0242f03c2: Waiting
始终无法解决这个问题,希望可以协助我解决吗,我是一个小白,感谢相助
我已经有点心态崩了!!!
应该不是镜像的原因。你看我的,尝试一下。或者重新Pull