Centos Docker 从零开始(2)之 mssql 的数据库文件保存在主机

来源:互联网 发布:黑客帝国之矩阵革命 编辑:程序博客网 时间:2024/06/06 01:00

Docker mmsql新建数据库如果能够把数据库文件保存在主机上就好了,centos好像可以挂载的

新建数据库的界面

docker 的 run 命令:

-v ~/nginx/www:/www :将主机中项目的目录www挂载到容器的/www

准备命令一下:

docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1401:1433 –name sql1 -d microsoft/mssql-server-linux

进入mmsql容器内看下:

docker exec -t -i sql1 /bin/bash

这里写图片描述

看下数据库储存的路径:新建目录 data1 作为主机的挂载点吧:

cd /var/opt/mssql/data/

mkdir data1

这里写图片描述

退出容器内部:

exit

centos 创建主机存放数据的目录:/home/jieguone/data/sql (自定义)

docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 –name sql2 -d microsoft/mssql-server-linux

加上开启自启动容器:

–restart参数

no - container不重启

on-failure - container推出状态非0时重启

always - 始终重启

docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’
-v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 –name sql2
–restart always -d microsoft/mssql-server-linux

再创建一个容器试试 name sql2

 docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=asdf@#123' -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 --name sql2 --restart always -d microsoft/mssql-server-linux

这里写图片描述

创建成功:用MSSM连接数据库

这里写图片描述

新建数据库:
这里写图片描述

。。。没权限

我百度我百度去:

要加上 –privileged=true

docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=asdf@#123’ –privileged=true -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1430:1433 –name sql4 –restart always -d microsoft/mssql-server-linux

记得 把其他的容器先删除了:

docker rm -f 容器id(可以确定那个容器就行,没必要打完整)

这里写图片描述

最终 docker run 命令行:

docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=asdf@#123' --privileged=true -v /home/jieguone/data/sql/:/var/opt/mssql/data/data1/ -p 1433:1433 --name mssql --restart always -d microsoft/mssql-server-linux

这里写图片描述

用 mssm连接,创建数据库测试

这里写图片描述

这里写图片描述

最后看下主机文件:

ls ./sql/

这里写图片描述

终于可以了…

阅读全文
0 0