先来看下docker容器的常用命令
再来了解下docker的事件状态机制
OK,上图就是docker容器的生命周期
有了理论知识做铺垫,接下来就开始进行实战了,话不多说,干就完事了!
首先安装docker,这个就不用讲了叭
然后使用命令行 通过pull命令 拉取搭建mssql服务所需的镜像
docker pull microsoft/mssql-server-linux
拉取完毕后 执行 docker images 命令查看本地镜像,如下图:
仓库版本注意一定不要搞错,红线圈起来的这个,之前搞错了使用了第一个镜像,配置运行好了使用MSSM怎么都链接不上本地服务器,坑了...
好,镜像拉取完毕,接下来就开始做容器了,通过run命令 执行创建并运行容器命令
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Abc@#2017!' -p 1433:1433 -v /d/SqlVolume/docker:/var/opt/mssql/data --name sqlserver -d microsoft/mssql-server-linux:2017-latest
这里说一下 docker相关参数,
- -e 作用是指定容器内的环境变量 ;
- -p 是端口映射,将本地端口映射到容器内部端口,
- -v 就是挂载 存储卷,将自定义 宿主机文件路径 映射到 容器内部 volume 路径,可以实现数据持久化
- --name 给创建的容器起一个别名
- -d 在后台运行
其他参数以及命令:
- -i: 交互式操作, -t: 终端,一般这两个是连起来用的-it
- -P:将容器内部使用的网络端口随机映射到我们使用的主机上(注意:这里是大写的P)
- 查看所有容器的命令:docker ps -a
- 启动容器:docker start 6afd135
- 停止容器:docker stop 6afd135
- 重启停止的容器:docker restart 6afd135
- 删除容器:docker rm 6afd135 (注意:删除容器时,容器必须是停止状态)
- 清理所有处于终止状态的容器:docker container prune
- 在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过 docker exec -it 6afd135 /bin/bash
至于怎么知道容器内部端口以及文件存储卷路径,可以在容器启动的时候通过 docker inspect 容器ID 命令来查看,如下图:
好吧,有点扯远了哈~!抱歉抱歉
创建并运行启动容器后 通过 docker ps 命令查看当前正在运行的容器
OK!服务器环境搭建完毕,接下来就是用我们安装好的客户端连接工具MSSM来进行连接了
Bingo,大功告成! 对了,需要注意的几个坑差点忘记和大伙儿讲:
- 宿主机使用MSSM链接数据库时,目前我没有改端口使用1433:1433,则要写 "localhost,1433",而不是冒号。
- 创建容器,注入环境变量 预设SA密码时,必须使用强密码,至少八位数切包括大小写字母数字特殊符号,否则容器运行一会儿会自动停止
- 做数据库存储目录共享时,注意宿主机(WIN)目录从盘符开始,:使用/代替,例如: /d/data=d:\data